===== 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