Bat Script

下面所有的脚本都会类比 Linux Shell Script 进行。

Windows有两个命令行 shell:Command shell 和 PowerShell。 每个 shell 都是一个软件程序,它提供你与操作系统或应用程序之间的直接通信,提供一个环境来自动执行 IT 操作。

Command shell 是内置于 Windows中,用于自动执行常规任务(例如用户帐户管理或夜间备份)和批处理 (.bat) 文件。 使用Windows脚本主机,可以在命令外壳中运行更复杂的脚本。 有关详细信息,请参阅 cscript 或 wscript。 通过使用脚本可以比使用用户界面更有效地执行操作。 脚本接受命令行中提供的所有命令。

PowerShell 旨在扩展 Command shell 的功能,以运行名为 cmdlet 的 PowerShell 命令。 Cmdlet 类似于 Windows命令,但提供了更具可扩展性的脚本语言。 可以在 PowerShell 中Windows命令和 PowerShell cmdlet,但命令外壳只能运行 Windows 命令,不能运行 PowerShell cmdlet。

若要实现最可靠、最新的自动化Windows,建议使用 PowerShell 而不是 Windows 命令或 Windows 脚本主机Windows自动化。

Generic Script

注释

windows bat 批处理和 PowerShell 都可以使用 :: 作为注释头部信息。与 Linux Shell Script 和 Python 的 # 不一致(反人类罪)。

1
:: 注释

DEL& RD

del 删除命令只能删除文件,rd 可以删除文件夹

/Q 是静默删除,不提示文字。/S 除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。

1
2
3
4
5
6
:: 静默删除所有文件和文件夹
del /Q %BUILD_PATH%\*.o
rd /S /Q %BUILD_PATH%\bin
rd /S /Q %BUILD_PATH%\log
rd /S /Q %BUILD_PATH%\lib
rd /S /Q %BUILD_PATH%\map

常见命令对照表

Windows Bat Windows PowerShell Linux Shell Others
help Get-Help man
cd /D Set-Location cd
cd Get-Location pwd
type Get-Content cat
rd /S
rmdir /S
Remove-Item rm -r
del
erase
Remove-Item rm
dir /b ls
dir Get-ChildItem ll
cls Clear-Host clear
doskey Set-Alias alias
md
mkdir
New-Item mkdir
move Move-Item mv
ren
rename
Rename-Item mv
copy Copy-Item cp
echo Write-Output echo

条件语句

bat 的条件语句教程:《if

PowerShell 的条件语句教程:《about_If

REFERENCE

  1. 什么是 PowerShell?
  2. Microsoft.PowerShell.Management
  3. Windows 命令