Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?
指南:
每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包
澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。
(请参见:Windows批处理文件:.bat vs .cmd?)
Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?
指南:
每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包
澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。
(请参见:Windows批处理文件:.bat vs .cmd?)
当前回答
cmd.exe中的快速编辑模式是我的最爱。这有点偏离主题,但是当与命令shell交互时,它可以是一个救星。不,我并不是在夸张——在你死之前,你只会看到一定次数的* * * * * v;你看得越多,死得越快。
打开regedit(小心,不是我的 故障、蓝屏等) 进入HKCU/控制台 “quickkedit”设置为“1”
(你也可以从UI设置,这可能是更好的方法。有关说明,请参阅注释。还有一个很好的一行脚本也可以做到这一点。)
现在,要复制,只需左键单击并拖动选择,然后右键单击复制。要粘贴,只需右击。
不再有^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v ^ v !!
该死,我想我刚杀了人。对不起!
其他回答
我总是发现很难阅读每行用关键字标记的注释:
REM blah blah blah
易于阅读:
:: blah blah blah
这里有一个技巧,我用它来连续运行My Nant Build脚本,而不必一遍又一遍地单击批处理文件。
:CODELINE
NANT.EXE -buildfile:alltargets.build -l:build.log build.product
@pause
GOTO :CODELINE
在您的解决方案完成构建之后,它将被暂停。然后,如果您按下任何键,它将再次重新运行构建脚本。我必须说非常方便。
脚本所在的路径(带驱动器):~dp0
set BAT_HOME=%~dp0
echo %BAT_HOME%
cd %BAT_HOME%
如块状结构:
if "%VS90COMNTOOLS%"=="" (
echo: Visual Studio 2008 is not installed
exit /b
)
相当于bash(和其他shell)
echo -n Hello # or
echo Hello\\c
输出“Hello”,后面没有换行符。一个cmd黑客来做这个:
<nul set /p any-variable-name=Hello
Set /p是一种提示用户输入的方法。它发出给定的字符串,然后等待(在同一行,即没有CRLF),等待用户输入响应。
<nul只是向set /p命令输送一个空响应,因此最终结果是发出的提示字符串。(由于响应为空,所使用的变量保持不变。)
问题是:不可能输出前导等号,在Vista中前导空白字符被删除,但在XP中没有。