Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file CMD:Echo';换一个新的。蝙蝠坏了吗?_Batch File_Cmd_Timeout_Echo_Ping - Fatal编程技术网

Batch file CMD:Echo';换一个新的。蝙蝠坏了吗?

Batch file CMD:Echo';换一个新的。蝙蝠坏了吗?,batch-file,cmd,timeout,echo,ping,Batch File,Cmd,Timeout,Echo,Ping,我有一个.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 但是,timeou

我有一个.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关闭
(Echo=@Echo关闭
回波=Ping-n127.0.0.1-w500
Echo=Exit/B)>“C:\NotSecretDir\time\u out.bat”
超时-1>Nul

我建议,调用批处理文件(然后调用ping命令并返回到原始进程)所需的时间实际上要比预期的半秒长。出于这个原因,我建议您不要麻烦,只使用
@Timeout 1 1>Nul

如果您将脚本更改为该脚本,而不是更改您的原始意图,会发生什么

@Echo关闭
(Echo=@Echo关闭
回波=Ping-n127.0.0.1-w500
Echo=Exit/B)>“C:\NotSecretDir\time\u out.bat”
超时-1>Nul

我建议,调用批处理文件(然后调用ping命令并返回到原始进程)所需的时间实际上要比预期的半秒长。出于这个原因,我建议您不要麻烦,只使用
@Timeout 1 1>Nul

您的批处理文件不会将任何行写入Timeout.bat,因为您的语法是错误的


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

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


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

什么是
C:\…\timeout.bat
呢?我从来没有在路径中看到过3个点。这是一个打字错误吗?我用一个简单的
timeout.bat
替换了它。执行你发布的代码甚至没有创建文件。它给我一个
0是在这个时候意外的我。
错误。删除双引号帮了我的忙。但我仍然对
的功能感到困惑。C:\…`只是一个占位符。我这边有实际的完整路径。
C:\…\timeout.bat
的功能是什么?我从来没有在一条路径上看到过3个点。这是打字错误吗?我用一个简单的
timeout.bat在我这边。执行你发布的代码甚至没有创建一个文件。它给了我一个
0,这在当时是出乎意料的。
错误。删除双引号帮了我的忙。但我仍然对
它做什么感到困惑。“C:\…”只是一个占位符。我这边有实际的完整路径。这是我昨天做的是的,只要我需要,就用一行简单的
Timeout 2>Nul/Nobreak
。但是今天早上,代码现在返回
错误,无法识别为内部或外部命令、可操作程序或批处理文件
,我被迫找到另一种解决方案。更新:我重新启动了计算机,现在@Timeout是functi再次发出警告。仍然不知道是什么原因导致了错误。这只是.bat的创建者需要被击中头部的另一个原因…再次更新:@timeout再次停止运行,但是这次没有显示错误消息。即使在空白的.bat文件中,也不会出现等待X秒的
。按任何键都不会使文件前进,并且我必须e还没有看到超时实际完成。它只是保持空白。建议,因为超时是一个命令,所以不要将批处理文件命名为timeout.bat或timeout.cmd,pause.bat或任何其他标准命令名也可以这样说。我已经相应地更新了答案。这是我昨天得到的答案,只需要一行简单的
timeout 2>Nul/Nobreak。但是,今天早上,代码现在返回的错误是
无法识别为内部或外部命令、可操作程序或批处理文件,我被迫找到替代解决方案。更新:我重新启动了计算机,现在@timeout再次运行。仍然不知道是什么原因导致了错误。只是另一个原因是.bat的创建者需要被击中头部…再次更新:@timeout再次停止运行,但是这次没有显示错误消息。即使在空白的.bat文件中,也不会出现等待X秒的
。按任意键都不会推进文件,我还没有看到超时真正完成。它只是保持blank.Advice,因为timeout是一个命令,所以不要将批处理文件命名为timeout.bat或timeout.cmd,pause.bat或任何其他标准命令名也是如此。我已经相应地更新了答案。