Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск файлов и перемещение каталога

Ответить
Настройки темы
CMD/BAT - [решено] Поиск файлов и перемещение каталога

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите!

Имеется проблемка: необходимо в некотором каталоге есть подкаталоги, которые содержат некие файлы, в одном подкаталоге могут содержаться файлы и txt и dbf и т.д.
так вот необходимо найти подкаталоги, кот. содержат хотя бы один файл txt, и переместить эти подкаталоги (вместе с содержимым) в некую папку KONTYNER.

набросал вот такую вещь, но она не работает

@echo on
cls
set mask="*.txt*"
rem Получение путей каталогов по маске
dir /b/s/o/n/a:-d "%~dp0Base\%mask%">ret.txt
rem Перемещение катологов
for /F "tokens=*" "%%i" in (%~dp0\ret.txt) do (
move "%~fi\*.*" "%~dp0KONTYNER\")
rem Удаление временного файла
del /q "%~dp0\ret.txt"
pause

Отправлено: 14:24, 03-02-2011

 

Старожил


Сообщения: 175
Благодарности: 119

Профиль | Отправить PM | Цитировать


Попробуй так:
Код: Выделить весь код
@echo of
setlocal enabledelayedexpansion

set "MainDir=%~dp0Base"
set "OutDir=%~dp0KONTYNER"

for /f "tokens=*" %%a in ('dir /a-d/s/b "%MainDir%\*.txt"') do (
   set "TxtDirPath=%%~dpa"
   set "OutSubDir=%OutDir%\!TxtDirPath:%MainDir%\=!"
   if not exist "!OutSubDir!" (
      md "!OutSubDir!" && move "!TxtDirPath!*.*" "!OutSubDir!" && rd "!TxtDirPath!"
   ) 
)

Последний раз редактировалось SendMessage, 03-02-2011 в 19:10.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:10, 03-02-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


пояснить можете эту строчку:
Цитата SendMessage:
set "OutSubDir=%OutDir%\!TxtDirPath:%MainDir%\=!" »
как это работает и можете подробнее про вот такие логические выражения:
=%OutDir%\!TxtDirPath:%MainDir%\=!"

и еще, не могу нигде найти почему выделяется !...!
Цитата SendMessage:
md "!OutSubDir!" »
Спасибо!

Отправлено: 09:00, 04-02-2011 | #3


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата SendMessage:
@echo of
setlocal enabledelayedexpansion
set "MainDir=%~dp0Base"
set "OutDir=%~dp0KONTYNER"
for /f "tokens=*" %%a in ('dir /a-d/s/b "%MainDir%\*.txt"') do (
set "TxtDirPath=%%~dpa"
set "OutSubDir=%OutDir%\!TxtDirPath:%MainDir%\=!"
if not exist "!OutSubDir!" (
md "!OutSubDir!" && move "!TxtDirPath!*.*" "!OutSubDir!" && rd "!TxtDirPath!"
)
) »
Работает просто ИДЕАЛЬНО. Еще раз спасибо SendMessage !!!

Отправлено: 09:32, 04-02-2011 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск файлов и перемещение каталога

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
7 / 2008 R2 - [решено] Обновление файлов каталога .CLG из командной строки Комсомолец Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 10 06-03-2011 03:13
CMD/BAT - [решено] Перемещение файлов по количеству из списка shadowbat Скриптовые языки администрирования Windows 9 29-08-2010 15:36
Delphi - Перемещение и удаление файлов по маске. Putin-mode Программирование и базы данных 1 21-06-2010 12:16
CMD/BAT - [решено] Поиск каталога и копирование всего его содержимого desk Скриптовые языки администрирования Windows 4 01-07-2009 14:28
Прочие - Программа (скрипт) удаление из заданного каталога заданных файлов __sa__nya Программное обеспечение Windows 1 20-11-2008 19:02




 
Переход