Передача параметров командной строки через schtasks


1

Я пытаюсь написать пакетный сценарий, в котором я могу щелкнуть правой кнопкой мыши файл и запустить командную строку от имени администратора для запуска файла (для того, чтобы в конце концов разобраться с требовательностью Windows 10 к файлам драйверов с недостаточным количеством сертификатов). Пока это в основном работает, но я постарался найти помощь по последнему вопросу.

Сценарий

set d=%DATE%
set t=%TIME%

schtasks /create /tn RunCMD /tr "cmd '%1'" /rl HIGHEST /ru <user> /rp <password> /sc once /st %t:~0,8% /sd %d:~4,10% /v1 /z

schtasks /run /tn RunCMD

pause

Результат:

D:\Backup\Drivers>set d=Thu 03/10/2016

D:\Backup\Drivers>set t=12:14:24.29

D:\Backup\Drivers>schtasks /create /tn RunCMD /tr "cmd '"D:\Backup\Drivers\IS_RT2860_W7-5.0.59.0_W8-5.0.59.0_W8Blue-5.0.59.0_W10-5.0.57.0_20150909_5.0.59.0_Free.exe"'" /rl HIGHEST /ru <user> /rp <password> /sc once /st 12:14:24 /sd 03/10/2016 /v1 /z
SUCCESS: The scheduled task "RunCMD" has successfully been created.

D:\Backup\Drivers>schtasks /run /tn RunCMD
SUCCESS: Attempted to run the scheduled task "RunCMD".

D:\Backup\Drivers>pause
Press any key to continue . . .

Откроется новое окно (taskeng.exe, а не cmd.exe, что странно), и оно дает мне путь, который вы получаете, когда запускаете его как администратор, но у него нет никаких аргументов.

C:\WINDOWS\system32>

Как получить открытую командную строку, чтобы принять аргумент, который я пытаюсь дать?


Попробуйте без 'персонажей
DavidPostill

Ответы:


1

Догадаться. CMD нужен переключатель / C, чтобы знать, что делать с параметром.

set d=%DATE%
set t=%TIME%

schtasks /create /tn RunCMD /tr "cmd /C '%1'" /rl HIGHEST /ru <user> /rp <password> /sc once /st %t:~0,8% /sd %d:~4,10% /v1 /z

schtasks /run /tn RunCMD

pause
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.