У моей компании много автоматизации, которая работает в течение ночи через пакетные скрипты. В основном просто копирование новых файлов здесь и там. То, что я ищу, - это способ запустить проверку дат создания файла/дат последней модификации после запуска всех сценариев, чтобы все было в актуальном состоянии. Он будет в основном искать конкретный файл на общем диске или UNC-пути. Если этот файл меньше 24 часов, ничего не делайте. Если файл темы OLDER превышает 24 часа, введите триггер. У меня уже есть VBS, чтобы отправить электронное письмо, чтобы добавить это в конце инструкции IF. Любая помощь приветствуется.Ищите пакетный скрипт для мониторинга последней даты изменения файлов
ответ
вы можете получить файл модификации дату с for %a in (file.txt) do echo %~ta
(удвоить %
в пакетных файлах)
Есть способы и средства ...
Вот процедура, которая будет делать что-то вдоль линий вы очертание:
@ECHO Off
SETLOCAL
:: remove variables starting $
FOR /F "delims==" %%a In ('set $ 2^>Nul') DO SET "%%a="
SET "sourcedir=U:\sourcedir"
SET "runflag=runflag.###"
SET "foundrun="
ATTRIB -h "%sourcedir%\runflag.###"
FOR /f "tokens=1,2delims=:" %%a IN ('dir /b /od /a-d "%sourcedir%"^|findstr /n /r "^"') DO (
IF %%b==%runflag% SET foundrun=Y
IF NOT DEFINED foundrun SET "$%%a=%%b"
)
(
ECHO(Old file list
FOR /F "tokens=1,2delims==" %%a In ('set $ 2^>Nul') DO ECHO(%%b
)>"%sourcedir%\%runflag%"
ATTRIB +h "%sourcedir%\runflag.###"
IF DEFINED $1 ECHO(send email
GOTO :EOF
Вы должны были бы изменить установку sourcedir
в соответствии с вашими обстоятельствами. runflag
- просто удобное имя файла.
Объект здесь предназначен для поиска файлов, которые не были обновлены с момента предыдущего запуска этой процедуры. Это преодолевает фиксированную идею «24 часа» - в случае праздников, выходных дней и т. Д.
Имена файлов, которые не изменились, были бы в runflag.###
- идеально подходят для использования в почтовой программе, например blat
.
Я играл с флагом hidden
здесь, чтобы скрыть файл от «этого не должно быть здесь - я не понимаю, я его удалю». (те, кто воспринимает это отношение, часто могут быть побеждены простым + H и + R). Улучшите или удалите команды ATTRIB, как вы.
Изменить \\server\share
и использовать имя файла вместо filename.ext
, и это должно запустить файл email.bat
, если файл старше 1 дня.
robocopy "\\server\share" "%temp%" filename.ext /minage:1 /L |find " New File " >nul && call email.bat
- 1. Пакетный скрипт для изменения формата даты файлов
- 2. Пакетный скрипт, который отслеживает изменения файлов
- 3. Пакетный скрипт для переименования файлов
- 4. Пакетный скрипт для изменения MD5 всех файлов в каждой папке
- 5. Пакетный скрипт для изменения многих файлов .xlsx .csv
- 6. Пакетный скрипт, проверяющий размеры файлов?
- 7. Пакетный скрипт для имен файлов префикс
- 8. Пакетный скрипт для поиска имен измененных файлов
- 9. Изменить пакетный скрипт для условной записи файлов
- 10. Windows пакетный скрипт для переименования файлов
- 11. Пакетный скрипт для перемещения файлов в zip
- 12. Пакетный скрипт для переименования файлов, если существует
- 13. Unpacking android apk без изменения последней измененной даты файлов
- 14. Пакетный скрипт Windows для определения последней папки в списке путей
- 15. Пакетный скрипт для удаления файлов старше X дней (на основе даты создания, не измененной даты)
- 16. Пакетный скрипт для FTP-файлов и файлов на несколько серверов
- 17. Пакетный скрипт для обнаружения и проверки файлов журнала
- 18. пакетный скрипт для xcopy
- 19. Пакетный скрипт для цикла
- 20. Пакетный скрипт для wget
- 21. Shell Script для мониторинга файлов
- 22. скрипт bash для мониторинга себя
- 23. Пакетный скрипт для удаления не самых последних файлов
- 24. Windows-пакетный скрипт для поиска определенных файлов для удаления
- 25. Bash скрипт для изменения имен файлов рекурсивно
- 26. пакетный скрипт, чтобы сделать пакетный скрипт
- 27. Windows, пакетный скрипт для изменения имен с некоторой логикой
- 28. Perl-скрипт для мониторинга файла журнала оповещений
- 29. AHK-скрипт для мониторинга изменений названия окна
- 30. Перевести пакетный скрипт для Powershell скрипт
Это определенно вызывает меня на правильном пути. Однако, если я запустил команду в пакетном файле, я не получаю результат. "для% a in (C: \ PROJECTS \ results.txt) сделать echo% ~ ta> C: \ PROJECTS \ NAVIS_MONITOR.txt". Если я скопирую и вставляю строку в подсказку cmd, она отлично работает, а затем я могу сделать FC и получить то, что мне нужно. Но когда я запускаю эту строку из пакетного файла, я ничего не получаю. –
В пакетном файле '%%' должны быть записаны дважды, а не просто '%'. См. Справку по команде 'for' output при входе в окно командной строки либо' help for', либо 'for /?'. – Mofi
Спасибо за помощь. Это заставило меня идти. –