在批处理文件中创建批处理文件 - Echo"> NUL"

Sem*_*dar 2 windows batch-file echo nul

情况:

  • 我有一个经常更新的文本日志文件.
  • 我已经有一个可以手动检查的批处理文件.
  • 我希望它(在启动批处理时)创建一个新的.bat.
  • 我在导出/创建" timeOut /t 2 >NUL"部分时遇到问题.
  • 它不会导出> NUL部分; 留下一片空白.
  • 例: timeout /t 2 /noBreak

我似乎无法找出任何方式导出/回显"> NUL"片段..任何输入将不胜感激!

echo mode con:cols=80 lines=28 >> %UserProfile%\Desktop\observeLog.bat
echo @echo off >> %UserProfile%\Desktop\observeLog.bat
echo Title Error Log >> %UserProfile%\Desktop\observeLog.bat
echo :startLogObserve >> %UserProfile%\Desktop\observeLog.bat
echo type %UserProfile%\Desktop\testLog.txt >> %UserProfile%\Desktop\observeLog.bat
echo timeout /t 2 >NUL /noBreak >> %UserProfile%\Desktop\observeLog.bat
echo cls >> %UserProfile%\Desktop\observeLog.bat
echo goTo :startLogObserve >> %UserProfile%\Desktop\observeLog.bat
Run Code Online (Sandbox Code Playgroud)

jeb*_*jeb 5

您需要转义特殊字符,因此解析器知道您要回显哪些部分以及要执行哪些部分.

顺便说一句.重定向完整块更容易

(
  echo mode con:cols=80 lines=28
  echo @echo off
  echo Title Error Log
  echo :startLogObserve
  echo type "%%UserProfile%%\Desktop\testLog.txt"
  echo timeout /t 2 ^>NUL /noBreak
  echo cls
  echo goTo :startLogObserve
) > %UserProfile%\Desktop\observeLog.bat
Run Code Online (Sandbox Code Playgroud)

我也改变了type %UserProfile%..type "%%UserProfile%%..."别人你在你的observeLog.bat扩展版本时,报价是有用的%UserProfile%包含空格或特殊字符