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

时间:2013-09-20 05:01:31

标签: 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

1 个答案:

答案 0 :(得分: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

我还将type %UserProfile%..更改为type "%%UserProfile%%..."否则您在observeLog.bat中获得了扩展版本 %UserProfile%包含空格或特殊字符时,引号很有用