2

情况:

  • 我有一个经常更新的文本日志文件。
  • 我已经有一个可以手动检查的批处理文件。
  • 我希望它(在批处理启动时)创建一个新的 .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
4

1 回答 1

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%%..."else 您在 observeLog.bat 中获得扩展版本 引号在%UserProfile%包含空格或特殊字符时很有用

于 2013-09-20T07:22:14.003 回答