CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Аватара пользователя
VitHAK

CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение VitHAK »

Привет всем!



Такая задача:




Цитата:



Есть каталог D:\Program. В нём есть другие каталоги. В этих каталогов разные имена, все эти имена на русском.



Нужно:



1. Проверить D:\Program\\ на присутствие каталога images. Еслы он есть тогда нужно переместить все *.jpg c D:\Program\\images в D:\images.

2. Проверить D:\Program\\ на присутствие каталогов по маске data*. Еслы они есть тогда нужно удалить все эти каталоги.

3. Проверить D:\Program\\ на присутствие файлов *.log , *.bak , *.tmp. Еслы они есть тогда нужно удалить все эти файлы.



P.S. Возможно ли такое сделать с каталогами на русском языке?
Аватара пользователя
pegasus

Re: CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение pegasus »

Большое спасибо! После некоторых модификаций заработало!
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение Petya V4sechkin »

Цитата VitHAK:



нужно переместить все *.jpg c D:\Program\\images в D:\images
CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске




гм... а что делать, если в разных подкаталогах окажутся файлы с одинаковыми именами?.. заменять при переносе?




Цитата VitHAK:



Возможно ли такое сделать с каталогами на русском языке?
CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске




язык не важен, проблемы могут быть со спецсимволами в именах файлов/каталогов типа кавычек и многоточий - встречаются при сохранении интернет-страниц



Petya V4sechkin, без EnableExtensions тоже вроде работает:



Код:

Код: Выделить всё

@Echo off
Set $SRC=D:\Program
Set $DST=D:\Images
For /F "Delims=" %%i In ('DIR /A:D/S/B "%$SRC%\Images"') Do MOVE "%%i\*.jpg" "%$DST%\"
For /F "Delims=" %%i In ('DIR /A:D/S/B "%$SRC%\data*"')  Do RD /S/Q "%%i"
Del /F/S/Q "%$SRC%\*.log" "%$SRC%\*.bak" "%$SRC%\*.tmp"
Аватара пользователя
VitHAK

Re: CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение VitHAK »

Цитата amel27:



без EnableExtensions тоже вроде работает



Я по привычке (EnableExtensions включен по умолчанию).




Цитата amel27:



For /F "Delims=" %%i In ('DIR /A:D/S/B "%$SRC%\Images"')



Если папка D:\Program\images существует, так не сработает (именно поэтому пришлось добавить * и в цикле анализировать).
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение Petya V4sechkin »

Цитата Petya V4sechkin:



Если папка D:\Program\images существует, так не сработает
CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске




точно! было, чувствую тут где-то подстава, но уже не помню : )
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение amel27 »

Цитата amel27:



гм... а что делать, если в разных подкаталогах окажутся файлы с одинаковыми именами?.. заменять при переносе?
CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске




Я не подумал об этом. Проблема в том что у меня в D:\Program\\images всего один *.jpg. Он у всех каталогах одинаковой logo.jpg.



Лутшим решением этой проблемы было б переименовать logo.jpg в имя каталога в котором images которого найден этот *.jpg
Аватара пользователя
VitHAK

Re: CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение VitHAK »

Цитата VitHAK:



Лутшим решением этой проблемы было б переименовать logo.jpg в имя каталога в котором images
CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске




ну, если имена каталогов уникальны, то где-то так:



Код:

Код: Выделить всё

@Echo off
Set $SRC=D:\Program
Set $DST=D:\Images
For /F "Delims=" %%i In ('DIR /A:D/S/B "%$SRC%\*"') Do If Exist "%%i\Images\logo.jpg" (
   REN "%%i\Images\logo.jpg" "%%~ni.jpg"
   MOVE "%%i\Images\%%~ni.jpg" "%$DST%\"
)
For /F "Delims=" %%i In ('DIR /A:D/S/B "%$SRC%\data*"')  Do RD /S/Q "%%i"
Del /F/S/Q "%$SRC%\*.log" "%$SRC%\*.bak" "%$SRC%\*.tmp"
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение amel27 »

Помогите пожалуйста написать такой bat файл:

Есть путь c:\Documents and Settings\user\Local Settings\Temp\bps\plot\ugt_33_20\ в этом каталоге создаются множество других каталогов содержащих файлы *.hpg нужно собрать эти все файлы и переместить в папу f:\plot
Аватара пользователя
pegasus

Re: CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске

Сообщение pegasus »

Помогите пожалуйста написать такой bat файл:

Есть путь c:\Documents and Settings\user\Local Settings\Temp\bps\plot\ugt_33_20\ в этом каталоге создаются множество других каталогов содержащих файлы *.hpg нужно собрать эти все файлы и переместить в папу f:\plot
Ответить

Вернуться в «Скриптовые языки администрирования Windows»