basic
&
separates commands on a line.
&&
executes this command only if previous command's errorlevel is 0.
||
(not used above) executes this command only if previous command's errorlevel is NOT 0
>
output to a file
>>
append output to a file
<
input from a file
|
output of one command into the input of another command
^
escapes any of the above, including itself, if needed to be passed to a program
"
parameters with spaces must be enclosed in quotes
+
used with copy to concatenate files. E.G. copy file1+file2
newfile
,
used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,,
%variablename%
an inbuilt or user set environmental variable
!variablename!
a user set environmental variable expanded at execution time, turned with SetLocal EnableDelayedExpansion command
%<number>
(%1)
the nth command line parameter passed to a batch file. %0
is the batchfile's name.
%*
(%*)
the entire command line.
%<a letter>
or %%<a letter>
(%A
or %%A
) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file.
检查结果
call <THE_COMMAND_HERE>
if %ERRORLEVEL% == 0 goto :next
echo "Errors encountered during execution. Exited with status: %errorlevel%"
goto :endofscript
:next
echo "Doing the next thing"
:endofscript
echo "Script complete"
if %ERRORLEVEL% NEQ 0 echo Error
if %ERRORLEVEL% EQU 0 echo OK
call child-script.bat
IF %ERRORLEVEL% NEQ 0 EXIT 1
Examples
cd /d S:
cd ..
cmd /c cd ..
/c tag ensures the interpreter returns to the original session, and the directory stays unchanged.
cmd /k cd ..
The /k parameter switches to the new session and runs the cd command to switch to the parent directory.
copy <options> <source> <destination>
move <options> <source> <destination>
删除 test目录
rmdir /s /q c:\test
/q disables Yes/No prompting
/s means delete the file(s) from all subdirectories.
del /s /q *.json
删除当前目录下所有json文件。包括子文件夹中的。
del /s /q "C:\Project\*.pdf"
echo "Hello, world!"
hostname
whoami /all
systeminfo
systeminfo /fo csv
getmac
date
time
time /t
timeout /t 10
to pause the interpreter for ten seconds
exit /b
To exit a batch script, add the /b parameter, Without the /b option, the exit command closes the command interpreter.
ipconfig /all
ipconfig /flushdns
tracert phoenixnap.com
netstat -a
Add the -a option to display all active TCP connections and listening TCP and UDP ports
set message="Hello, world!"
echo %message%
start <title> <options>
start "Hello, world!" /d C:\
load start a new command-prompt session with the title "Hello, world!" and set the path to C:\
tasklist
taskkill /pid <Process ID>
taskkill /f /im winword.exe
call Calls a batch file from another one