Search This Blog

Loading...

7.11.2006

Check and Restart a Windows service with batch file

:: In this example we restart the PCAnywhere service
:: The name of the service could be parametrize
:: PURPOSE TO CHECK IF THE PCANYWHERE SERVICE IS RUNNING
:: IF IT IS NOT RUNNING RESTART IT

@echo off & setlocal ENABLEEXTENSIONS
echo %errorlevel%
pause
call :IsRunning "pcAnywhere Host Service" && echo\yes || echo\no
if errorlevel 0 ENDLOCAL
echo kaikki ok
pause
goto :EOF

:EOF

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:IsRunning %svc%
::
:: By: Ritchie Lawrence, 2003-10-08. Version 1.0
::
:: Func: Sets errorlevel to zero if the specified service is running,
:: otherwise errorlevel set to one. For NT4/2000/XP/2003.
::
:: Args: %1 Display name of the service to check (by val)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
setlocal ENABLEEXTENSIONS & set "svc=%1"
set svc=%svc:"=%
echo The name of the service is %svc%
pause
net start | findstr/i /b /e /c:" %svc%" >nul
if errorlevel 1 call :RestartService %svc%
endlocal & goto :EOF
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:RestartService %svc%
setlocal ENABLEEXTENSIONS
echo The name of the service is %svc%
pause

echo Restarting the Service
pause
echo "%svc%"
pause
net start "%svc%"
pause
endlocal & goto :EOF
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Pelrl class implementing "getters and setters "

package WhateverName ;
my $fields = {} ; #this hash describes each property of
#the class

sub new
{
my $invocant= shift ;
my $class = ref ($invocant ) || $invocant ; #could be called as object cloning method
my $self = {} ;
my $fields = { @_, }; #get the passed parameters to the constr
while (@_)
{
my $name = shift ;
my $value = shift ;
set( $self , $name , $value );
}
bless $self , $class ;
return $self ;
}

sub get {
shift;
my $name = shift;
return $fields->{$name};
}

sub set {
shift;
my $name = shift;
my $value = shift;
$fields->{$name}=$value;
}

sub dumpFields
{
my $self = shift ;
foreach $key (keys %$fields)
{
print "$key = $fields->{$key}\n";
}
}


1;
__END__

7.09.2006

Perl links

Perl for Win32
Perl Documentation 5.8


ppm installation instructions
perl modules installation instructions

7.08.2006

Threads in Perl

#Ok I have to admit my skills in threads so far are almost 0
#For theoreticall start :
#perlthrtut

Batch file selective recursive directory walker

@echo off
rem -------------------------------------------------------------------------
rem Batch file to execute a command on a set of files.
rem -------------------------------------------------------------------------
rem Revision History:
rem 6/5/1982 Fred Stluka
rem - Initial version for IBM VMS/CMS (FILELIST EXEC)
rem 10/12/1985 Fred Stluka
rem - Initial version for DEC VAX/VMS
rem 10/4/1988 Fred Stluka
rem - Initial version for Unix (find -exec, find -ok)
rem 12/2/1998 Fred Stluka
rem - Initial version for Windows NT
rem 2/3/2005 Fred Stluka
rem - Execute command via "call" in case it's a BAT file.
rem - Expand filenames to fully qualified paths via ~f.
rem - Notes explaining FOR command syntax.
rem $Log$
rem -------------------------------------------------------------------------

rem Turn echo back on if ECHO environment variable equals ON.
if not "%ECHO%"=="" echo %ECHO%

if "%1" == "" goto USAGE
if "%1" == "-?" goto USAGE
if "%1" == "/?" goto USAGE
if not "%OS%" == "Windows_NT" goto NOT_NT

rem Accumulate the DIR options and file specs (everything until "DO").
set DIR_PARAMS=
:GET_DIR_PARAMS
for %%i in (do DO dO Do) do if "%1"=="%%i" goto DO_FOUND
if "%1"=="" goto NO_DO_FOUND
set DIR_PARAMS=%DIR_PARAMS% %1
shift
goto GET_DIR_PARAMS
:DO_FOUND
shift

rem Run the command on the files.
rem
rem Notes:
rem - The /f switch causes FOR to parse each line in a file.
rem - The "Tokens=*" option causes an entire line of the file to be handled
rem at once. (Not required, since this is the default behavior.)
rem - Percent signs must be doubled on FOR loop variables inside BAT files.
rem - The apostrophes cause the DIR command to be evaluated to produce the
rem "file" to be parsed by /f.
rem - The ~f modifier expands the filename in %i to a fully qualified path.
rem - For more info, type: HELP FOR
rem
echo DIR parameters: %DIR_PARAMS%
echo Files to be processed:
for /f "Tokens=*" %%i in ('dir %DIR_PARAMS% /a-d /b') do echo "%%~fi"
rem Note: "echo." echoes a blank line. "echo ." would echo a dot.
echo.
echo Hit Ctrl-C to stop or any other key to continue:
:: pause > nul
for /f "Tokens=*" %%i in ('dir %DIR_PARAMS% /a-d /b') do call :EXECUTE %1 %2 %3 %4 %5 %6 %7 %8 "%%~fi"
goto EXIT

:EXECUTE
echo %1 %2 %3 %4 %5 %6 %7 %8 %9
rem
rem Note: The keyword "call" is needed here. Otherwise, if the first parameter
rem is the name of a BAT file, things get confused. The BAT file is not
rem executed, and the following error is reported:
rem The system cannot find the batch label specified - EXECUTE
rem
call %1 %2 %3 %4 %5 %6 %7 %8 %9
goto EXIT

:NOT_NT
echo Sorry. %0 only runs under Windows NT, 2000, XP, etc. Not 95, 98, ME.
goto EXIT

:NO_DO_FOUND
echo Invalid syntax. Must specify DO.
goto USAGE

:USAGE
echo %0 is a BAT file that executes the specified command on the specified
echo set of files. The files are specified as a set of parameters that would
echo cause the DIR command to select the right set of files.
echo Usage: %0 [dir_params...] DO command
echo Examples: %0 *.* DO type
echo Types all files in the current directory.
echo %0 DO type
echo Types all files in the current directory.
echo %0 /s DO type
echo Types all files in the current directory tree.
echo %0 *.exe DO start /wait /max
echo Runs all EXE files in the current directory, one at a
echo time, waiting for each to finish, in maximized windows.
echo %0 /s /aa c:\*.* DO xcopy /s /m /f
echo Incremental backup. Run with A:\ as the current
echo working directory. Copies all files with archive bit
echo set from the C drive to the current directory tree,
echo clearing the archive bits and echoing the names as
echo the files are copied.
echo %0 /s /a-r DO edit
echo Edit all files that are not readonly in the current
echo directory tree.
goto EXIT

:EXIT

Windows cmd batch copy paste rows

:: RESOLVE THE MAC ADDRESS OF A COMPUTER
for /f "tokens=2* delims=:" %%a in ('ipconfig /all ^| find /i "Physical Address"') do for %%b in (%%a) do set MACAddress=%%b
:: pause

:: RESOLVE THE IP ADDRESS ON A COMPUTER
for /f "tokens=2* delims=:" %%a in ('ipconfig /all ^| find /i "ip address"') do for %%b in (%%a) do set ipaddr=%%b
:: pause

Edit Windows XP Registry

:: Huh ...
:: What a topic heh ...
:: Here copy pastes for the most used edits on Win XP registry

:: Define the username straight from the registry (Requires access to the specified key

reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" tmp.reg
for /f "tokens=2 delims==" %%a in ('find /i "username" tmp.reg') do call stuff


#################################################################
#Here some Perl Registry monging
#First
package SomePackage ;
#Initialize using the proper module (comes with Perl installation )
use Win32::TieRegistry 0.20 qw(
TiedRef $Registry
Delimiter / ArrayValues 1 SplitMultis 1 AllowLoad 1
REG_SZ REG_EXPAND_SZ REG_DWORD REG_BINARY REG_MULTI_SZ
KEY_READ KEY_WRITE KEY_ALL_ACCESS
);


$Registry->{"CUser/Software/Software_provider/Product_name"}= {
"Folder_name" => {
"/Value_name" => [ "$REGVALUEDATA", REG_SZ() ],
},
} or die "I was not able to play with the registry " ;

1;

__END__

#################################################################

Java

Here later on more java stuff

Favorite IT links

PERL



pixigreg.com
Programming Perl--Index
split - perldoc.perl.org

PATTERN_MATCHING



PERL Regular Expressions
Regular Expressions in PERL


THEORY



PERL COOK BOOK
Perl in a Nutshell


PERL_FAQ



perlfaq4 - Data Manipulation


ppm



Installing Perl packages from a local directory using PPM


CGI



Uploading Files Using CGI and Perl [CGI & Perl Tutorials]
Create a file upload facility on your Website, and enable your users to upload content to your Web server. Matt's step-by-step guide gives you the nuts and bolts you need to build your own file uploader.


WINGUI



Win32::GUI
Documentation for Win32::GUI perl extension (Win32::GUI)

Perl in Testing Automation
Gabor Szabo International Perl trainer and developer. Specializing in Automated Quality Assurance and Web backend development.


Windows cleaning

:: Windows has the stupid habid to put a lot of extra stuff on
:: a lot of folders copy paste this post to your startup folder

ECHO.
ECHO Deleting %temp% ....
ECHO.
del %temp%\*.* /f /s /q /a:H /a:A /a:S /a:-

ECHO
ECHO Deleting %systemroot%\Temp\ ....
ECHO

del %systemroot%\Temp\*.* /f /s /q /a:H /a:A /a:S /a:-
del C:\WINDOWS\system32\spool\printers\*.*/ f /s /q /a:H /a:A /a:S /a:-
del "C:\Documents and Settings\%userName%\Application Data\Opera\Opera\profile\cache4\*.*" /f /s /q /a:H /a:A /a:S /a:-

ECHO.
ECHO Emptying Recycleing Bin ....
ECHO.

del %systemDrive%\RECYCLER\*.* /f /s /q /a:H /a:A /a:S /a:-

del "%systemDrive%\Documents and Settings\%userName%\Application Data\Sun\Java\Deployment\tmp\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Application Data\Sun\Java\Deployment\log\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Application Data\Sun\Java\Deployment\cache\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Application Data\Lavasoft\Ad-Aware\Quarantine\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Application Data\Lavasoft\Ad-Aware\Logs\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Application Data\Kazaa Lite\db\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Application Data\Microsoft\Dr Watson\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Application Data\Spybot - Search & Destroy\Backups\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Application Data\Spybot - Search & Destroy\Logs\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Local Settings\Temporary Internet Files\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Local Settings\Temp\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Local Settings\History\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\Documents and Settings\%userName%\Recent\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\WINDOWS\system32\spool\PRINTERS\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\WINDOWS\Temp\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\WINDOWS\Prefetch\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\WINDOWS\pchealth\helpctr\Temp\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\WINDOWS\pchealth\helpctr\OfflineCache\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\WINDOWS\pchealth\helpctr\Logs\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\WINDOWS\Debug\" /f /s /q /a:H /a:A /a:S /a:-
del "%systemDrive%\WINDOWS\Cache\" /f /s /q /a:H /a:A /a:S /a:-





endlocal

HTML

First of all - html is not actually coding ... still one has to have some skills in order to create something visible by himself ...
My first ready web page I created is :
Vantaan R&H Rakenne Oy
Surprise - it is in Finnish, since I live in Helsinki , check out the last link "kuvia kohteistamme" - it is done with a small java program called JAlbum - it is a wanderfull demonstration what everything you could do with java ....
At this momement this program could be downloaded from
JAlbum

7.07.2006

Perl process killer on Windows XP

package ProcessCleaner ;
#Purpose : kill specified processes on Windows XP machine


sub killProcesses {
my @passed_array = shift ;
my @procsToLookFor = split(/ / , @passed_array ); #get the names of the hanging apps to check

for(grep/\S/,`tasklist /v /nh`) {
chomp;my($p,$i,$u,$t)=unpack'A24A8x56A50x14A*',$_;$p="$p $t" unless $t
eq'N/A';$p=~s/ +/ /g;$i+=0;$u=~tr/ /_/;
#debug print"$i $u $p\n" ; #if we want the username who owns that process
foreach (@procsToLookFor) {
if ($p =~m/$_/ig ) #if found searchable
{ print "Killing $p with process ID : $i " ;
$cmd = "taskkill /PID $i /T /F" ;
`$cmd` ; #execute command
sleep 1 ;
}
}
}
} #eof sub killProcesses

#comments suggestions ?!

Purpose of this blog

For the beginning the purpose of this blog will be simple copy paste for code - no offence to anybody - everything on this page might be copy paste from somewhere , where has been said that it is not illigal to ...
The point is ... nothing is stolen. As much as I remember I will mention my sources ...
Most of the stuff is copy pasted and modified by me ... so feel free to copy paste also ...
Any constructive comments on my e-mail on google , which is yordan.georgiev ... pla pla (this is to prevent spam ; )will be appreciated ...

My first post

Hello World !

Heh heh , it took me 60 seconds to create my first blog. Who claims that it is only for nerds ?

Blog Archive

My Blog List

Video Bar

Loading...

About Me

My Photo
Yordan Georgiev
It is one thing to know what to want, second to really want it, third to know how to do it, fourth to be skillful to do it, fifth to actually do it and last but not least to go on without regrets after having done it. LinkedIn Profile
View my complete profile