![]() |
Если файл существует, то - ___, если не существует, то___
Здравствуйте. Помогите пожалуйста найти ошибку в скрипте.
IF EXIST "C:\ps1\ok.txt" goto :eof ELSE (schtasks /Create /SC OnLogon /RU "system" /TN "ExcelWinwordStop-CopyAmtlib-ActivateKMS-ONSTART" /RL HIGHEST /DELAY 0000:30 /TR c:\ps1\StopExcelCopyAtmlibStartKMS-ONSTART.vbs ) & nul>ok.txt pause Смысл скрипта. Если в указанной дирректории нет файла, то в планировщике создается задача а вместе с ней и файл в дирректории, если файл существует, то скрипт прерывается. Очень прошу помощи. Много читал про оператор IF, но недосягаемо для моего понимания похоже... Спасибо! |
Сама по себе команда в скобках нормально отрабатывает?
|
Да, команда отрабатывает, задание в планировщике создается с необходимыми параметрами
IF EXIST "C:\ps1\ok.txt" goto :eof - это в отдельности тоже отрабатывает нормально nul>C:\ps1\ok.txt - тоже в отдельности отрабатывает нормально Не могу все это связать в пакетный файл. Был вариант такой проверки: IF EXIST C:\Windows\System32\Tasks\ONSTART goto :eof ELSE schtasks /Create /SC OnLogon /RU "system" /TN "ONSTART" /RL HIGHEST /DELAY 0000:30 /TR c:\ps1\ONSTART.vbs но ничего не получилось, т.к. у файлов в папке TASKS нет расширения... |
Проблему получилось решить таким образом. Похожий скрипт нашел на форуме и изменил. Вроде, работает. На мой взгляд все как-то громоздко и проверка не должна быть привязана к существованию файлов в дирректории, а должна быть привязана к существованию задания в планировщике...
@echo off SET SNMP=C:\ps1\ok.txt IF EXIST "%SNMP%" CALL :St IF NOT EXIST "%SNMP%" GOTO :Inst :Inst (schtasks /Create /SC OnLogon /RU "system" /TN "ONSTART" /RL HIGHEST /DELAY 0000:30 /TR c:\ps1\ONSTART.vbs) & (nul>C:\ps1\ok.txt) GOTO: EOF :St chcp 1251 ECHO Zapusk skripta %DATE% - %TIME% >> C:\ps1\suschestvuet.txt GOTO :EOF pause |
а так?
Код:
IF not exist "C:\ps1\ok.txt" (schtasks /Create /SC OnLogon /RU "system" /TN "ExcelWinwordStop-CopyAmtlib-ActivateKMS-ONSTART" /RL HIGHEST /DELAY 0000:30 /TR "C:\ps1\StopExcelCopyAtmlibStartKMS-ONSTART.vbs"& rem:>"C:\ps1\ok.txt") else goto :eof Цитата:
|
Большая просьба помочь с реализацией привязки к планировщику, то есть, сначала происходит проверка наличия задания в планировщике. Если задание есть, скрипт прерывается, если нет, то - создается. Если подобное можно реализовать через powershell буду очень признателен за помощь.
Цитата:
|
Цитата:
Код:
$myZ = (Get-ScheduledTask).TaskName|where {$_ -eq 'Name Zad'} |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
не было времени сделать, проверяйте (ничего нигде не меняйте, все в точности соответствует задаче в schtasks из начального поста): [PowerShell] Код:
$TaskName = 'ExcelWinwordStop-CopyAmtlib-ActivateKMS-ONSTART' |
Спасибо большое! Скрипт отработал на "УРА!"
|
Время: 09:13. |
Время: 09:13.
© OSzone.net 2001-