Перемещение файлов по списку в заданные директории
Есть вот такой код. Он сканирует папку на наличие в ней файлов содержащих в названии текст icon и и перемещает в папку icon.
а нужно что он брал переменные из текстового файла filelist.txt
icon
cursor
wallpaper
...
и помещал найденные файлы в создаваемые одноименные директории
Код:
@echo off
set fol=icon
for %%i in (*%fol%*.*) do call:move "%%i"
goto:eof
:move
set /a folder+=1
md %fol%
move %1 %fol%
|
разобрался
Код:
@echo off
for /F "delims=" %%a in (F:\test\test\FileList.txt) do (
md F:\test\test\"%%a"
move %1 "*%%a*.*" F:\test\test\"%%a"
)
как вот теперь сделать чтоб пустые папки не создавал
|
Цитата:
Цитата 929151
как вот теперь сделать чтоб пустые папки не создавал »
|
Хотите обходной путь? Пусть создаёт. После
Цитата:
Цитата 929151
Код:
move %1 "*%%a*.*" F:\test\test\"%%a"
»
|
проверяйте наличие файлов в конечной папке, и, если она пуста — удаляйте её.
|
сделал вот так
Код:
@echo off
for /F "delims=" %%a in (F:\test\test\FileList.txt) do (
md F:\test\test\"%%a"
move /Y %1 "*%%a*.*" F:\test\test\"%%a"
)
for /d %%i in ("F:\test\test\*") do rd /q "%%i" 2>nul
работает, но жаль только не учитывает что имена файлов в папках могут совпадать при последующем перемещении.
|
Чтобы сразу не создавались пустые папки можно сделать так
Код:
@echo off
Set Where=E:\Delete
for /F "delims=" %%a in (E:\Delete\FileList.txt) do (
If Exist "%Where%\*%%a*.*" (
md "E:\Delete\%%a" 2>nul
move /Y "%Where%\*%%a*.*" "E:\Delete\%%a\" >nul 2>nul
)
)
|
Время: 04:06.
© OSzone.net 2001-