User Tools

Site Tools


batch

Fallpits

#when using variables no empty spaces after equal
VAR TEST1="WILL WORK"
VAR TEST2 ="VAR WILL BE EMPTY"

call

To call another *.bat use

call "D:\...\compile.cmd"

start

To start a programm in the console, and pass it some parameters with empty spaces use the following syntax:

start "WINDOWNAME" /B "D:\Programme Portable\Putty\putty.exe" -ssh ubuntu@ec2-1-22-33-44.eu-east-3.compute.amazonaws.com:22 -l ubuntu -i "D:/Path to Key/ssh-putty-ubuntukey-private.ppk"

The first argument of “start” - is the window title. Pass an empty one, for the next command to be recognized as the path to the programm.

/B flag makes windows not creating a new window.

Documentation start command: http://ss64.com/nt/start.html

Start cm with a command works like this. Use /k to start cmd with a commad.

start cmd /k "robocopy c:/path/to/dir c:/path/to/backup /E"

Printers

Put the following into the “run” field to see all possible commands.

rundll32 printui.dll,PrintUIEntry /?
:: delete network printer per batch
rundll32 printui.dll,PrintUIEntry /dn /n "\\brian\OKI C5100 (v2)"
:: install a network printer per batch
rundll32 printui.dll,PrintUIEntry /q /in /n "\\brian\HPColorSekri"
Counter

To use Counters - deplayed expanation must be used in batch. The Variables are then translated to numers eveny loop.

  • It must be enabled by setlocal ENABLEDELAYEDEXPANSION
  • variables are loaded by !var! von %var%
setlocal ENABLEDELAYEDEXPANSION

set /A cnt=1

for %%f in (*.cer) do (
            echo %%~nf
            set /A cnt=cnt+1
	    echo !cnt!
)

Commands

SUBST

Create a virtual disk from a LOCAL folder

subst z: b:\user\betty\forms

# delete
subst z: b:\user\betty\forms \D

SCRIPT to find java process by command line argments

Name it findJavaProcessByCommandline.bat Usage:

call findJavaProcessByCommandline.bat javaCommandLinePart
if errorlevel 1 echo NoFindings & exit /b 1
if errorlevel 1 check result of nested script. 1 if nothing found
echo NoFindings Echo
& exit /b 1 and exits the parent script. Instead you can do whatever you want with this info
@echo off

:: check if empty
IF [%1] == [] GOTO noarg

:: use the argument
set likeString=%1


setlocal EnableDelayedExpansion
set processIdFinding=
for /f %%i in ('wmic process where "Caption Like 'java.exe' AND CommandLine Like '%%!likeString!%%' " get ProcessId') do (
 set processIdFinding=!processIdFinding!%%i
)

if "%processIdFinding%"=="" ( 
  goto nofindings
) else (
  goto findings
)

:nofindings
echo Nothing Found 
exit /b 1

:findings
echo Finding: %processIdFinding%
exit /b 0

:noarg
echo Please provide the Stringto be searched withing java process commandline as an argument
exit /b 1
batch.txt · Last modified: by 127.0.0.1