CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___

Аватара пользователя
epoddubniy

CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение epoddubniy »

Здравствуйте. Помогите пожалуйста найти ошибку в скрипте.



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 - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение epoddubniy »

Цитата:



(!$myZ)



объясните пожалуйста, что значит восклицательный знак перед переменной?




Цитата:



{$_ -eq 'Name Zad'}



скажите пожалуйста, правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'} (или Name нужно обязательно оставить?)




Цитата:



{"Создаем"}



А как описать второе условие, когда задача в планировщике есть и выполнение скрипта нужно остановить?
Аватара пользователя
epoddubniy

Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение epoddubniy »

Да, команда отрабатывает, задание в планировщике создается с необходимыми параметрами



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 - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение DJ Mogarych »

Сама по себе команда в скобках нормально отрабатывает?
Аватара пользователя
epoddubniy

Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение 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 - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение alpap »

Большая просьба помочь с реализацией привязки к планировщику, то есть, сначала происходит проверка наличия задания в планировщике. Если задание есть, скрипт прерывается, если нет, то - создается. Если подобное можно реализовать через powershell буду очень признателен за помощь.




Цитата alpap:



Цитата epoddubniy:

проверка не должна быть привязана к существованию файлов в дирректории »

но у вас именно так в начале.
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___




совершенно верно, потому что придумать что-т другое не получилось
Аватара пользователя
epoddubniy

Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение epoddubniy »

Цитата epoddubniy:



проверка наличия задания в планировщике
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___




по какому критерию проверить (TaskPath, TaskName, State - Путь, Имя, Состояние) - ?





Код:

Код: Выделить всё

$myZ = (Get-ScheduledTask).TaskName|where {$_ -eq 'Name Zad'}
If (!$myZ) {"Создаем"}
Аватара пользователя
alpap

Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение alpap »

Цитата alpap:



по какому критерию проверить (TaskPath, TaskName, State - Путь, Имя, Состояние) - ?
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___




по критерию TaskName
Аватара пользователя
epoddubniy

Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение epoddubniy »

Цитата:



(!$myZ)



объясните пожалуйста, что значит восклицательный знак перед переменной?




Цитата:



{$_ -eq 'Name Zad'}



скажите пожалуйста, правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'} (или Name нужно обязательно оставить?)




Цитата:



{"Создаем"}



А как описать второе условие, когда задача в планировщике есть и выполнение скрипта нужно остановить?
Аватара пользователя
epoddubniy

Re: CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___

Сообщение epoddubniy »

Цитата epoddubniy:



что значит восклицательный знак перед переменной?
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___




Отрицание. «НЕ».




Цитата epoddubniy:



правильно ли будет, если я в кавычках укажу таким образом {$_ -eq '*onstart*'}
CMD/BAT - [решено] Если файл существует, то - ___, если не существует, то___




Неправильно. Для работы с шаблонами Вам нужен другой оператор, не «-eq».
Ответить

Вернуться в «Скриптовые языки администрирования Windows»