batch
Table of Contents
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