Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?

指南:

每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包

澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。

(请参见:Windows批处理文件:.bat vs .cmd?)


当前回答

一个非常古老(大约1990年)的技巧来获得环境变量的总大小:

set > test
dir test
del test

其他回答

使用空格和转义字符完全控制输出:

echo.    ^<resourceDir^>/%basedir%/resources^</resourceDir^>

脚本所在的路径(带驱动器):~dp0

set BAT_HOME=%~dp0
echo %BAT_HOME%
cd %BAT_HOME%

对于具有数字计数器的循环(输出1到10):

for /l %i in (1,1,10) do echo %i
PUSHD path

将您带到path指定的目录。

POPD

带您回到您“推”的目录。

我发现你可以轻松地将命令输出重定向到文件中非常有用:

DIR *.txt > tmp.txt
DIR *.exe >> tmp.txt

单箭头创建或覆盖文件,双箭头追加文件。现在我可以在我的文本编辑器中打开tmp.txt,做各种各样的事情。