防止工作站上的Windows.BAT文件的意外执行?

我有一个带有robocopy行的.BAT文件。 .BAT文件驻留在networking服务器目录中。 我使用我的工作站上的客户端/监视器应用程序发出一个运行命令给几个无头机器,告诉他们每个运行.BAT文件。

我遇到的问题是,当我尝试复制粘贴命令行并将其发送到远程机器时,我无意中在自己的工作站上执行了这个命令!

有什么办法可以修改.BAT文件或做一些优雅的事情,使.BAT文件不会意外地在当前活动login人员的工作站上运行,或者出现这种情况? 我只需要做到这一点,所以当我使用它的时候,我不会意外地在我的机器上运行这个愚蠢的东西。

也许只是在开始时抛出一个短暂的等待命令,例如说10秒,提示“等待10秒…”

如果您不小心在自己的工作站上执行了这个操作,那么这将使您有足够的时间在工作站上取消它。

按照这个家伙的build议如何创build“计时器”,如果你愿意,或拿出你自己的参数/脚本:

更好的方式在bat文件中等待几秒钟?

或者(假设这些机器只有一小部分是你想要运行的)获取batch file来检查运行的机器的名字,然后在比较之前将其与正确的机器列表进行比较robocopy:

@echo off FOR %%A IN (MACHINE1 MACHINE2 MACHINE3) DO IF %computername%==%%A goto :RUNTHEBATCHFILE ECHO Not running on this PC goto :THEEND :RUNTHEBATCHFILE REM Run something ECHO Hello goto THEEND :THEEND 

设置安全权限,以便您的用户帐户已经读取,但不能读取和执行权限?

或者主动否认自己的“读取和执行”权限。

如果您的计算机上有一个脚本,并且您希望它在另一台计算机上运行…

在另一个batch file中使用PSExec ,将脚本复制到所需的计算机并在那里运行?

RunOtherBat.bat:

 @Echo Off psexec \\SomeServer -c test.bat psexec \\SomeServer1 -c -u Domain\Admin -p SuperSecret!23$ test.bat psexec \\SomeServer2 -c test.bat 

要么

创build一个环境variables(用户或系统),并检查该variables? 如果variables存在 – 不要运行(或者运行)。