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 | :: 静默删除所有文件和文件夹 |
常见命令对照表
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》