У меня есть каталог, в котором пользователи сохраняют свои файлы Excel, которые должны соответствовать определенному соглашению об именах:
XX-TestFile.xlsx
, где XX
- это переменная цифра, а -TestFile.xlsx
всегда должно быть одинаковым ине изменить.Я хотел бы иметь возможность проверить пакетное задание, если файлы в каталоге соответствуют определенному соглашению об именах.
Если имя файла написано с ошибкой, то есть XX-TetsFiel.xlsx
, XX
не является цифрой, подобной 02
или даже XX-testfile.xlsx
(все строчные буквы), затем файлы должны быть перемещены в каталог ошибок.
Я использую ниже для перемещения файлов для достижения этой цели.Я тестирую с 11-testFiel.xlsx
, и он работает просто отлично.
@echo off
for /f "delims=" %%a in ('dir /b *.xlsx ^| findstr /v "[0-9][0-9]-TestFile.xlsx"') do move "%%a" "C:\Temp\Archive\Error"
Однако, dir /b *.xlsx | findstr /v "[0-9][0-9]-TestFile.xlsx"
допускает 109 возможных комбинаций, поскольку XX
- это переменная с двумя цифрами, например 02
.Тем не менее, теперь я хотел бы проверить только определенные имена файлов из 20 возможных цифр, таких как 02-TestFile.xlsx
, 05-TestFile.xlsx
, 10-TestFile.xlsx
и т. Д. Этот список является фиксированным ... Так, например, если файл называется 99-TestFile.xlsx
Я все еще хотел бы переместить его в архив ошибок, так как это нежелательное имя файла.Можете ли вы предложить решение для этого?