我只是想知道批处理文件中的“〜”符号是什么,我知道它与变量有关。
我能举例说明它的作用吗?
感谢。
答案 0 :(得分:1)
取决于您未提供的背景信息。
例如,如果%% a中有文件名,则%% ~za将返回文件大小,%%〜ta文件日期/时间。其他时候它可能是一个子字符串运算符,例如%fred:~1,6%
(fred
的子字符串,跳过第一个1
并选择下一个6
最大值。
答案 1 :(得分:1)
这取决于~
用作dbenham和Magoo已编写的命令。通常,它意味着:通过修改获取变量(循环或环境变量)的值。
一个非常简单的例子:
有一个包含内容的批处理文件test.bat
:
@echo Parameter 1 as specified: %1
@echo 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已写入时,请在命令提示符窗口中输入命令并阅读窗口中的帮助输出。
help call
或call /?
help for
或for /?
help set
或set /?
在许多带有空格或其他特殊字符的命令字符串上 - 请在输入cmd /?
后查看上一个帮助页面输出 - 必须用双引号括起来。但其他人要求删除双引号,就像使用命令if
对两个双引号字符串进行比较一样,或者使用双引号时不需要使用echo
。
又一个例子:
@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
导致只获取没有双引号的文件名,将字符串中的路径和文件扩展名作为第一个参数传递给批处理文件。