Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?
指南:
每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包
澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。
(请参见:Windows批处理文件:.bat vs .cmd?)
Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?
指南:
每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包
澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。
(请参见:Windows批处理文件:.bat vs .cmd?)
当前回答
我发现你可以轻松地将命令输出重定向到文件中非常有用:
DIR *.txt > tmp.txt
DIR *.exe >> tmp.txt
单箭头创建或覆盖文件,双箭头追加文件。现在我可以在我的文本编辑器中打开tmp.txt,做各种各样的事情。
其他回答
基于行的执行
虽然在大多数情况下没有明显的好处,但当试图在运行时更新内容时,它会有所帮助。例如:
UpdateSource.bat
copy UpdateSource.bat Current.bat
echo "Hi!"
Current.bat
copy UpdateSource.bat Current.bat
现在,执行Current.bat会产生这样的输出。
HI!
注意,批处理执行是按行号进行的。如果基本行没有完全相同的行号,这样的更新可能会导致跳过或向后移动一行。
我真的很喜欢这个Windows XP命令参考,以及在顶部的语法链接;它涵盖了许多已经在其他答案中找到的技巧和技巧。
要从文件的第一行开始设置一个环境变量,我使用以下命令:
rem a.txt contains one line: abc123
set /p DATA=<a.txt
echo data: %DATA%
这将输出:abc123
符号链接:
mklink /d directorylink ..\realdirectory
mklink filelink realfile
该命令是Windows Server 2008及更新版本(包括Vista和Windows 7)上的本机命令。(它也包含在一些Windows资源包中。)
我想说DEBUG.EXE是批处理文件中一个非常有用但却未被充分利用的特性。
DEBUG命令允许你…
汇编和反汇编16位代码 读/写内存(现代受保护的内存使这个功能变得不那么有用。) 从硬盘读取数据扇区,原始 十六进制编辑
简而言之,这个工具非常强大。现在可能已经不怎么使用了,但是从批处理脚本调用和控制这个功能的能力为批处理脚本增加了惊人的能力。
注意:据我所知,微软已经从64位版本的Windows Xp和Vista中删除了这个命令,并打算从Windows 7中完全删除它。