пакетный скрипт для удаления файлов с сегодняшней датой в названии - PullRequest
0 голосов
/ 10 марта 2020

У меня есть устаревшее задание, которое создает такой файл am_mailplan.xlsx_20200228_090901AM

Мне нужно проверить, существует ли файл по этому пути, и если да, просто записать в журнал. Но в этой папке также есть более старые файлы. поэтому мне нужно проверить, содержит ли часть имени файла сегодняшнюю дату. Поэтому я попробовал приведенный ниже код, и он может найти файлы с текущей датой в своем имени и записать в журнал, как и ожидалось.

После этого последний шаг - удалить те файлы, которые имеют сегодняшнюю дату в своем имени. , С сегодняшнего дня может быть несколько файлов. Поэтому я использую del "% FileName% *", когда я запускаю файл bat, он удаляет ранее существующие файлы, но снова создает новый файл. Например, если я запускаю файл bat в 11:45, все файлы перед этим удаляются am_mailplan.xlsx_20200309_105446AM, а в 11:05 создается новый файл am_mailplan.xlsx_20200309_114546AM Я не вижу, как создается новый файл, потому что новый файл создается только в строке, где я звоню

start /WAIT F:\CPTS\AMMailPlan\apps\AltMediaLoad\setup.exe /s /w  

И я вызываю delete полностью в конце скрипта

Пожалуйста, предложите способ обработки этого последнего шага: удаление

Rem AltMedia starts here
Rem Check if any file came for processing on the day of execution
if exist F:\CPTS\AMMailPlan\Inbound\*.txt (
    move F:\CPTS\AMMailPlan\Inbound\*.txt C:\Backup\AltMedia
    echo %DATE% %TIME% Altmedia text file moved to backup >>C:\JobValidationLog\JobValidationLog.txt
)
if exist F:\CPTS\AMMailPlan\Inbound\*.xlsx (
    move F:\CPTS\AMMailPlan\Inbound\*.xlsx  C:\Backup\AltMedia
    echo %DATE% %TIME% Altmedia xlsx file moved to backup >>C:\JobValidationLog\JobValidationLog.txt
)
Rem copy the files from test folder to inbound
xcopy H:\TestFiles\AltMediaTestFile\*.txt  F:\CPTS\AMMailPlan\Inbound
if %errorlevel% == 0 (
    echo %DATE% %TIME% AltMedia test file copied to inbound >>C:\JobValidationLog\JobValidationLog.txt
)
xcopy H:\TestFiles\AltMediaTestFile\*.xlsx  F:\CPTS\AMMailPlan\Inbound
if %errorlevel% == 0 (
    echo %DATE% %TIME% AltMedia xls test file copied to inbound >>C:\JobValidationLog\JobValidationLog.txt
)
Rem Call the load altmedia exe
start /WAIT F:\CPTS\AMMailPlan\apps\AltMediaLoad\setup.exe /s /w
echo %DATE% %TIME% Calling AltMediaLoad\setup.exe >>C:\JobValidationLog\JobValidationLog.txt

set mydate=%date:~10,4%%date:~4,2%%date:~7,2%
echo my date %mydate%
set "FileName=F:\CPTS\AMMailPlan\Completed\am_mailplan.xlsx_%mydate%"
if exist "%FileName%*" (
    echo %DATE% %TIME% The file exist in completed folder "%FileName%">>C:\JobValidationLog\JobValidationLog.txt
) 
if %errorlevel% == 0 (
    echo %DATE% %TIME% validation successful>>C:\JobValidationLog\JobValidationLog.txt
)
echo "%FileName%*"
del "%FileName%*"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...