Windows批处理:"~"是什么作用?
Windows批处理:什么是“~”的作用?
在Windows批处理中,“~”的作用取决于使用的命令。一般来说,它的含义是:获取循环变量、环境变量或传递给批处理文件的参数字符串的值,并进行修改。
一个非常简单的例子:
有一个批处理文件test.bat,内容如下:
Parameter 1 as specified: %1 Parameter 1 (no quotes): %~1
可以通过以下方式启动它:
test.bat "C:\Program Files\Internet Explorer\iexplore.exe"
由于路径中有空格,所以双引号是必需的。
批处理文件的输出结果是:
Parameter 1 as specified: "C:\Program Files\Internet Explorer\iexplore.exe" Parameter 1 (no quotes): C:\Program Files\Internet Explorer\iexplore.exe
所以在这个例子中,使用“~”可以获取到第一个参数的值,而不包含双引号。
正如dbenham已经写过的那样,可以在命令提示符窗口中输入以下命令,并阅读窗口中的帮助信息。
1. `help call`或`call /?`
2. `help for`或`for /?`
3. `help set`或`set /?`
在许多命令中,字符串中包含空格或其他特殊字符时(参见输入`cmd /?`后的最后一个帮助页面输出),必须使用双引号括起来。但是其他命令要求删除双引号,例如使用`if`命令比较两个带双引号的字符串,或者不希望使用`echo`命令时。
再举一个例子:
off if /I "%~n1" == "iexplore" echo Browser is Internet Explorer. if /I "%~n1" == "opera" echo Browser is Opera. if /I "%~n1" == "firefox" echo Browser is Firefox.
在这个例子中,“~n”只会获取到作为第一个参数传递给批处理文件的字符串的文件名,不包含双引号、路径和文件扩展名。
参数0是当前正在执行的批处理文件,可以通过以下方式进行演示:
off echo Batch file was called with: %0 echo Batch file is stored on drive: %~d0 echo Batch file is stored in folder: %~dp0 echo Batch file name with extension: %~nx0
希望这些例子能够解答你关于“~”在Windows批处理中的作用的疑问。