Как игнорировать имя файла 8.3 для команды "move" в batchscript?
Мне нужно переместить много xml-файлов, названных так:
- F010199004524001_904.XML
- F010199805946001_737.XML
- F010199904725001_611.XML
- F030390114543001_901.XML
- F030390114544001_257.XML
- F030390114545001_901.XML
в моем пакетном файле есть эта строка:
переместить C:\source\F01*.xml C:\target\F01\
Теперь у меня проблема в том, что некоторые файлы имеют другое имя файла 8.3, например
"F030390114545001_901.XML" имеет имя "F01FCF~1.XML", поэтому этот файл также перемещается в каталог "F01".
Команда "fsutil 8dot3name strip" в моем случае бесполезна, потому что пакет работает на сервере 2003.
Есть ли какой-либо тип обходных или альтернативных команд для решения этой проблемы?
1 ответ
Решение
for /f %%a in ('dir /b /a:-d "c:\source"^| findstr /i /b "F01"^|findstr /i /e ".xml"') do (
move "%%~fa" "C:\target\F01\"
)
этот?
РЕДАКТИРОВАТЬ
findstr
фильтрация может быть выполнена с помощью одного выражения -
findstr /beri "f01.*xml"
так
for /f %%a in ('dir /b /a:-d "c:\source"^| findstr /beri "f01.*xml"') do (
move "%%~fa" "C:\target\F01\"
)