Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?
指南:
每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包
澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。
(请参见:Windows批处理文件:.bat vs .cmd?)
Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?
指南:
每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包
澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。
(请参见:Windows批处理文件:.bat vs .cmd?)
当前回答
现在很多人使用GOTO:EOF来终止他们的批处理文件,但你也可以使用EXIT /B来达到这个目的。
使用EXIT /B的优点是你可以在EXIT /B之后添加一个错误级别,它将退出该错误级别。
其他回答
您可以将if语句链接起来,以获得类似短路布尔' and'的效果。
if foo if bar baz
文件名为“YYYY-MM-DD HH:MM:SS.txt”的例子
回波测试>“%日期:~ 0,4% - %日期:~ 5 2% - %日期:~ 8,2% %时间:~ 0,2% _ %时间:~ 3,2% _ %时间:~ 6,2% . txt”
我使用颜色来指示我的脚本是否成功,失败,或者通过改变文本和背景的颜色来需要一些输入。当你有一些机器在你视野范围内,但距离很远时,它真的很有帮助
颜色XY
其中X和Y为从0到F的十六进制值,其中X -背景,Y -文本,当X = Y时颜色不会改变。
颜色Z
更改文本颜色为“Z”并设置黑色背景,“颜色0”将不起作用
颜色的名字叫
颜色吗?
CHOICE命令提示用户在多个选项中选择一个(通过单个按键)
@echo off
echo Please choose one of the following options
echo 1. Apple
echo 2. Orange
echo 3. Pizza
echo a, b, c. Something else
choice /c:123abc /m "Answer?"
set ChoiceLevel=%ErrorLevel%
echo Choice was: %ChoiceLevel%
%ChoiceLevel%将是选中的第n个选项(在上面的例子中,b=5)。
更多详情请访问SS64.com上的CHOICE参考页面。
使用&::的内联注释。
:: This is my batch file which does stuff.
copy thisstuff thatstuff &:: We need to make a backup in case we screw up!
:: ... do lots of other stuff
这是如何工作的呢?这是一个丑陋的黑客。&是命令分隔符,大致近似于;UNIX shell。::是另一个丑陋的黑客,有点像REM语句。最终结果是执行命令,然后执行一个什么都不做的命令,从而近似于注释。
这并不是在所有情况下都有效,但它通常足够有用。
狡猾的等待N秒的技巧(不是cmd.exe的一部分,但不是额外的软件,因为它是Windows自带的),参见ping行。您需要N+1个ping,因为第一个ping没有延迟。
echo %time%
call :waitfor 5
echo %time%
goto :eof
:waitfor
setlocal
set /a "t = %1 + 1"
>nul ping 127.0.0.1 -n %t%
endlocal
goto :eof