У меня есть файл .BAT со строкой robocopy в нем. Файл .BAT находится в каталоге сетевого сервера. Я использую приложение клиент / монитор на своей рабочей станции, чтобы отправить команду запуска на несколько безголовых машин, чтобы сообщить им каждый запуск файла .BAT.
Проблема, с которой я столкнулся, заключалась в том, что пару раз, когда я пытался скопировать и вставить командную строку для отправки на удаленные машины, я случайно выполнил команду на своей собственной рабочей станции!
Есть ли способ изменить файл .BAT или сделать что-нибудь элегантное, чтобы файл .BAT не мог случайно работать на рабочей станции с активным в данный момент зарегистрированным человеком или чем-то в этом роде? Мне просто нужно сделать это, чтобы случайно не запустить эту глупость на своей машине, когда я с ней работаю.
Или (при условии, что это только ограниченный пул этих машин, на котором вы когда-либо захотите запустить его) получите командный файл, чтобы проверить имя машины, на которой он работает, и сравнить его со списком нужных машин перед выполнением Робокопия:
@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
Может быть, просто введите вначале короткую команду ожидания, скажем 10 секунд, с подсказкой «Ожидание 10 секунд ...»
Это даст вам достаточно времени, чтобы отменить его на своей рабочей станции, если вы случайно запустите его на своей собственной рабочей станции.
Следуйте советам этого парня о том, как создать "таймер", если хотите, или придумайте свои собственные параметры / скрипт:
Установить разрешения безопасности, чтобы ваша учетная запись пользователя имела права на чтение, но не на чтение и выполнение?
Или активно отказывать себе в разрешении на «Чтение и выполнение».
Если у вас есть сценарий на вашем компьютере, и вы хотите, чтобы он запускался на другом компьютере ...
Использовать 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
ИЛИ
Создать переменную среды (пользовательскую или системную) и проверить эту переменную? Если переменная существует - не запускать (или запускать).