CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
-
epoddubniy
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Здравствуйте. Помогите пожалуйста найти ошибку в скрипте.
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 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, но недосягаемо для моего понимания похоже...
Спасибо!
-
epoddubniy
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Цитата:
(!$myZ)
объясните пожалуйста, что значит восклицательный знак перед переменной?
Цитата:
{$_ -eq 'Name Zad'}
скажите пожалуйста, правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'} (или Name нужно обязательно оставить?)
Цитата:
{"Создаем"}
А как описать второе условие, когда задача в планировщике есть и выполнение скрипта нужно остановить?
(!$myZ)
объясните пожалуйста, что значит восклицательный знак перед переменной?
Цитата:
{$_ -eq 'Name Zad'}
скажите пожалуйста, правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'} (или Name нужно обязательно оставить?)
Цитата:
{"Создаем"}
А как описать второе условие, когда задача в планировщике есть и выполнение скрипта нужно остановить?
-
epoddubniy
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Да, команда отрабатывает, задание в планировщике создается с необходимыми параметрами
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 нет расширения...
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 нет расширения...
-
DJ Mogarych
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Сама по себе команда в скобках нормально отрабатывает?
-
epoddubniy
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
а так?
Код:
надо именно в одну строку, как я понял7
Цитата epoddubniy:
проверка не должна быть привязана к существованию файлов в дирректории
но у вас именно так в начале.
Код:
Код: Выделить всё
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надо именно в одну строку, как я понял7
Цитата epoddubniy:
проверка не должна быть привязана к существованию файлов в дирректории
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
но у вас именно так в начале.
-
alpap
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Большая просьба помочь с реализацией привязки к планировщику, то есть, сначала происходит проверка наличия задания в планировщике. Если задание есть, скрипт прерывается, если нет, то - создается. Если подобное можно реализовать через powershell буду очень признателен за помощь.
Цитата alpap:
Цитата epoddubniy:
проверка не должна быть привязана к существованию файлов в дирректории »
но у вас именно так в начале.
совершенно верно, потому что придумать что-т другое не получилось
Цитата alpap:
Цитата epoddubniy:
проверка не должна быть привязана к существованию файлов в дирректории »
но у вас именно так в начале.
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
совершенно верно, потому что придумать что-т другое не получилось
-
epoddubniy
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Цитата epoddubniy:
проверка наличия задания в планировщике
по какому критерию проверить (TaskPath, TaskName, State - Путь, Имя, Состояние) - ?
Код:
проверка наличия задания в планировщике
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
по какому критерию проверить (TaskPath, TaskName, State - Путь, Имя, Состояние) - ?
Код:
Код: Выделить всё
$myZ = (Get-ScheduledTask).TaskName|where {$_ -eq 'Name Zad'}
If (!$myZ) {"Создаем"}-
alpap
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Цитата alpap:
по какому критерию проверить (TaskPath, TaskName, State - Путь, Имя, Состояние) - ?
по критерию TaskName
по какому критерию проверить (TaskPath, TaskName, State - Путь, Имя, Состояние) - ?
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
по критерию TaskName
-
epoddubniy
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Цитата:
(!$myZ)
объясните пожалуйста, что значит восклицательный знак перед переменной?
Цитата:
{$_ -eq 'Name Zad'}
скажите пожалуйста, правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'} (или Name нужно обязательно оставить?)
Цитата:
{"Создаем"}
А как описать второе условие, когда задача в планировщике есть и выполнение скрипта нужно остановить?
(!$myZ)
объясните пожалуйста, что значит восклицательный знак перед переменной?
Цитата:
{$_ -eq 'Name Zad'}
скажите пожалуйста, правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'} (или Name нужно обязательно оставить?)
Цитата:
{"Создаем"}
А как описать второе условие, когда задача в планировщике есть и выполнение скрипта нужно остановить?
-
epoddubniy
Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Цитата epoddubniy:
что значит восклицательный знак перед переменной?
Отрицание. «НЕ».
Цитата epoddubniy:
правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'}
Неправильно. Для работы с шаблонами Вам нужен другой оператор, не «-eq».
что значит восклицательный знак перед переменной?
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Отрицание. «НЕ».
Цитата epoddubniy:
правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'}
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___
Неправильно. Для работы с шаблонами Вам нужен другой оператор, не «-eq».