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

指南:

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

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

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


当前回答

将错误级别设置为你想要的任何数字的方法:

CMD /C EXIT number

其他回答

要从文件的第一行开始设置一个环境变量,我使用以下命令:

rem a.txt contains one line: abc123
set /p DATA=<a.txt
echo data: %DATA%

这将输出:abc123

PUSHD path

将您带到path指定的目录。

POPD

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

隐藏从命令重定向到>nul 2>&1的所有输出。

例如,某些命令行程序即使重定向到>nul也会显示输出。但是,如果像下面这行那样重定向输出,所有输出都将被抑制。

PSKILL NOTEPAD >nul 2>&1

编辑:有关其工作原理的解释,请参见忽略命令的输出。

变量的延迟展开(为了更好地度量,还加入了子字符串):

    @echo off
    setlocal enableextensions enabledelayedexpansion
    set full=/u01/users/pax
:loop1
    if not "!full:~-1!" == "/" (
        set full2=!full:~-1!!full2!
        set full=!full:~,-1!
        goto :loop1
    )
    echo !full!
    endlocal

整数运算:

> SET /A result=10/3 + 1
4