2015-02-09 2 views
0

Мне нужно переместить много файлов в разные папки для моей работы. Я могу получить удобочитаемый список файлов, которые находятся на нашей внутренней веб-странице. То, что я хотел бы сделать, это автоматизировать процесс перемещения файлов в Windows 7.Автоматическое перемещение файлов в разные подпапки по списку в Win7

У меня есть около 450 файлов, все имена с цифрами и буквами, например. 1.mp4, 2.mp4, 2 a.mp4 и т. Д. Мне нужно поместить их в определенные папки, также пронумерованные. Например. Папка 6431, папка 2315.

Вот пример списка я получаю:

High Performance Dance Center (AK) - 3356 

4 dances competing 
Finals 

#20 3:57 PM  Flower Festival 
#120 9:27 PM Landfill 
#158 4:37 PM Ladies With An Attitude 
#230 9:02 PM Sound of Silence` 

Karla Pattavina's Dance Academy (AL) - 172 

5 dances competing 
Finals 
#47 5:48 PM   Turn to Stone 
#69 6:54 PM   Taking Flight 
#93 8:06 PM   All I Want 
#211 8:01 PM  I Look To You 
#255 10:30 PM unDefined 

Так файлы 20.mp4, 120.mp4, 158.mp4 и 230.mp4 перейти в папку 3356. Files 47.mp4, 69.mp4, 93.mp4, 211.mp4 и 255.mp4 перейдите в папку 172. Теперь просто повторите это для 400+ файлов в 20-40 разных папках.

Я могу заставить нашего веб-мастера генерировать список в другом формате, чем сейчас, но как лучше всего перемещать файлы? Я хотел бы использовать пакетный скрипт или действительно что-либо, что не требует специального программного обеспечения. Чем глупее, тем лучше.

ответ

0
@ECHO OFF 
SETLOCAL 
SET "sourcedir=U:\sourcedir" 
SET "destdir=U:\destdir" 
FOR /f "delims=" %%a IN (q28186729.txt) DO (
CALL :analyse %%a 
) 

GOTO :EOF 
:: 
:analyse 
:: line may begin "#number" 
SET "filename=%1" 
IF "%filename:~0,1%"=="#" ECHO(move "%sourcedir%\%filename:~1%.mp4" "%destdir%\%dirname%\"&GOTO :eof 
: dirnl 
SET "filename=%2" 
IF NOT DEFINED filename GOTO :EOF 
IF "%3"=="" IF "%1"=="-" SET "dirname=%2"&MD "%destdir%\%2\" 2>nul&GOTO :EOF 
SHIFT 
GOTO dirnl 
GOTO :eof 

Вы должны были бы изменить установку sourcedir в соответствии с вашими обстоятельствами.

Я использовал файл с именем q28186729.txt, содержащий ваши данные для моего тестирования.

Необходимые команды MOVE всего лишь ECHO ed для целей тестирования. После того, как вы подтвердили правильность команд, измените значение ECHO(MOVE на MOVE, чтобы фактически переместить файлы. Добавить >nul для подавления сообщений отчета (например, 1 file moved)

Это был простой!

+0

Это успешно создает все мои папки, но в них ничего не происходит. Очень странно. Я запустил его с помощью cmd/k, чтобы открыть окно подсказки. В окне отображаются правильные имена файлов и пути, но файлы не перемещаются. – edinc90

+0

Вы можете добавить строку 'pause' непосредственно перед' goto: eof', чтобы открыть окно - или, предпочтительно, запустить команду непосредственно из приглашения - выбрать программы/аксессуары/командную строку. Щелкните правой кнопкой мыши и «отправьте на рабочий стол» ; запустить из созданного значка. Чистый метод для закрытия окна - 'quit'. Я также отредактирую - в моем обычном «как заставить его работать» вафли, которые я пропустил. – Magoo

+0

Ах, да, конечно. 'ECHO (MOVE' просто, ну, эхо команду move, а не на самом деле ее выполнять. Это замечательно! Спасибо! – edinc90

Смежные вопросы