Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Command line 批处理文件中的Sleep命令?_Command Line_Batch File_Psexec - Fatal编程技术网

Command line 批处理文件中的Sleep命令?

Command line 批处理文件中的Sleep命令?,command-line,batch-file,psexec,Command Line,Batch File,Psexec,当我编写一个自动运行的批处理文件时,如何编写它,以便在运行批处理文件时,它可以在命令之间暂停几秒钟 背景: psexec \\server -u user -p pass cmd [there needs to be a pause here for psexec to establish a connection] dir /s >output.txt \\server\shared *注意:我之所以在服务器端使用psexec而不是在本地运行dir命令,是因为在本地计算机上运行dir要

当我编写一个自动运行的批处理文件时,如何编写它,以便在运行批处理文件时,它可以在命令之间暂停几秒钟

背景:

psexec \\server -u user -p pass cmd
[there needs to be a pause here for psexec to establish a connection]
dir /s >output.txt \\server\shared
*注意:我之所以在服务器端使用psexec而不是在本地运行dir命令,是因为在本地计算机上运行dir要比远程运行快得多,而且时间至关重要


当我用手做这件事时,显然很容易,我只是等待。但运行批处理文件会使它以近乎即时的速度彼此相邻地运行所有命令,而不管最后一个命令的完成状态如何。我该如何暂停?

我认为这里的信息:比我更能解释它

但是仍然存在错误处理的情况(如果远程机器没有启动怎么办?)。cmd.exe在大多数情况下对于执行任何远程活动都是毫无用处的,使用powershell可以实现更多功能

编辑::

事实上,您可以使用psexec执行本地存储的程序(它在服务器端被复制并在本地执行)——使用它会是一种更可行的选择吗

如果不知道您打算运行什么命令,就很难再进一步了

编辑(2)::

如果它只是您正在运行的一个命令,只需将其存储在一个专用文件中,如“remote_dir_listing.cmd”,然后将psexec用于:

psexec \\server -u <user> -p <pass> -c -f remote_dir_listing.cmd
psexec\\server-u-p-c-f remote\u dir\u listing.cmd

这将在每次执行本地文件时强制将其副本发送到远程端(以防您想要扩展它)。通过这种方式,您根本不需要暂停—只有当psexec打开管道时,它才会运行,一旦完成,它就会自动关闭。

2003版Windows资源工具包将安装在Windows XP上。它包含SLEEP.EXE,可从命令批处理文件中使用


下载在这里

在较新版本的Windows中有
超时
命令:

timeout /T 10

在WindowsVista/Windows7上,可以使用超时命令:

timeout /T [delay in seconds] /NOBREAK > NUL
在以前版本的Windows上,可以使用ping命令(ping命令在每次迭代之间有1000毫秒的延迟):

某些版本的Windows(如)具有sleep.exe可执行文件:

sleep [delay in seconds]
注意:包含sleep.exe命令


如果您不知道Windows版本,只需使用ping hack,因为它是可用的。

我想说,大多数来自谷歌的人都会发现这个答案(不是公认的答案)最有用。由于TCP/IP现在无处不在,使用ping通常会起作用,但只有在使用TCP/IP的情况下(客户端Windows计算机可以使用NetBEUI或IPX/SPX代替)。参考:已确认在Windows 10 Enterprise中,上述休眠命令可用。的可能副本更有用,可能标记为应答
sleep [delay in seconds]