CMD:回显到一个新的 .bat 不工作?

CMD: Echo'ing into a new .bat not working?

我有一个 .cmd 文件,它创建一个 .bat 文件,调用时,通过 ping 提供 500 毫秒的延迟。我的代码是:

@echo off && SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION 
("
  echo @echo off
  echo ping 1.1.1.1 -n 1 -w 500
  echo exit /b
")>C:\...\timeout.bat
pause>NUL
ENDLOCAL

然而,进入timeout.bat的唯一输出是

@echo off
exit /b

有人知道为什么它不能识别 ping 命令吗?我的语法不正确吗?

如果您将脚本更改为此,会发生什么情况,这并不是为了改变您的初衷?

@Echo Off
(Echo=@Echo Off
  Echo=Ping -n 1 127.0.0.1 -w 500
  Echo=Exit/B)>"C:\NotSecretDir\time_out.bat"
Timeout -1 1>Nul

我建议调用一个批处理文件,然后调用 ping 命令和 returns 到原始进程将有效地花费比预期的半秒更长的时间。出于这个原因,我建议您不要打扰,只需使用 @Timeout 1 1>Nul.

您的批处理文件不会向 timeout.bat 写入任何行,因为您的语法错误。

(" 将产生错误,您的批处理的其余部分将不会执行。