Я пытаюсь использовать файлы forfiles для проверки папки для обновленного файла .xlsx (менее 1 дня), а затем запустить другой файл bat в зависимости от того, был ли обновленный файл или нет.Проблемы с петлями/ошибками Forfiles
Первоначально у меня был сценарий, который сделал это, но в некоторые дни появилось несколько новых .xlsx-файлов, поэтому скрипт «зациклился» и будет запускать файл success.bat несколько раз.
Если обновленный файл не найден, cmd завершит с ошибкой, поэтому я использовал это для запуска файла fail.bat.
Это то, что у меня есть на данный момент:
@echo on
set found=0
forfiles /p C:\ /m *.xlsx /d 0 /c "cmd /k set found=1"
if /i %found%==1 (
Call Success.bat
) else (
if /i %found%==0 (
Call Fail.bat
)
PAUSE
Теперь это прекрасно работает, когда будут обновлены файлы .. т.е. он избавляется от проблемы петли.
НО теперь у меня есть проблемы с CMD выходом, если не обновленный файл не найден и с помощью
if ERRORLEVEL 1 call fail.bat
, кажется, не работает для меня больше ... Я не буду просто не хорошо с этим, если/другое вещество с .bat файлами
Почему бы не упростить простой лайнер: 'forfiles ... && call success.bat || call fail.bat'. Кроме того, вы забыли опцию '/ d 0'. – dbenham
Пробовал это, добавил «/ d 0», и он работает, чтобы запустить Fail.bat, но если он найдет файл, он не запустит Success.bat – Slingy
@dbenham Спасибо, я отредактировал свой ответ. Это намного лучше. – unclemeat