PDA

Показать полную графическую версию : [решено] Перемещение файлов по путям из текстового файла


laden2009
03-04-2016, 16:05
Добрый день! Нужен следующий скрипт:
Имеется папка "D:\1\" с файлами, в которой нет подпапок. Например:
01 - Dance Of Fate.flac
01 - Hunab K'u.flac
02 - Dance Of Fate.flac
02 - The Last Crusade.flac
03 - Solitary Ground.flac
03 - The Last Crusade.flac
04 - Blank Infinity.flac
04 - Solitary Ground.flac
05 - Blank Infinity.flac
И есть текстовый файл list.txt в той же папке со списком файлов с абсолютными путями:
D:\1\Album\CD1\01 - Hunab K'u.flac
D:\1\Album\CD1\02 - Dance Of Fate.flac
D:\1\Album\CD2\02 - The Last Crusade.flac
D:\1\Album\CD2\03 - Solitary Ground.flac
D:\1\Album\CD1\03 - The Last Crusade.flac
D:\1\Album\CD2\04 - Blank Infinity.flac
D:\1\Album\CD1\04 - Solitary Ground.flac
D:\1\Album\CD1\05 - Blank Infinity.flac
Требуется, чтобы файлы из папки "D:\1\" переместились по путям, взятым из текстового файла list.txt

Foreigner
03-04-2016, 17:49
@echo off
setlocal

for /f "tokens=*" %%i in ('type list.txt') do if exist "%%~nxi" (

2>nul md "%%~dpi"
move "%%~nxi" "%%i"

)

laden2009
03-04-2016, 18:34
Foreigner, не работает, никаких сообщений не выводится, если даже добавить в конец "pause". Если убрать строку "@echo off" пишет D:\1>s
"s" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Пробовал на разных наборах файлов/папок - результат один.

Foreigner
03-04-2016, 18:48
laden2009, Как вы запускаете батник? Сохраните его в папке с файлами (flac и list.txt).

laden2009
03-04-2016, 18:55
Foreigner, Батник сохранен в папке "D:\1\". Файл list.txt там же. Запускаю двойным кликом - окно появляться на доли секунды и закрывается. Пробовал на файлах без пробелов и без кириллицы в именах.

Foreigner
03-04-2016, 19:10
laden2009, попробовал, создал папку, в ней файлы, создал list.txt, все отработало правильно. Даже файл "01 - Dance of Fate.flac", которого нет в list.txt, остался на месте. Так что смотрите внимательней на пути, указанные в файле list.txt

laden2009
03-04-2016, 19:33
Foreigner, попробовал на windows server 2008 - замечательно батник отработал, спасибо.
На Windows 8.1 почему-то не работает, буду тестировать дальше.

Заработало на всех системах, просто я сделал батник не в той кодировке, из-за этого и были проблемы.




© OSzone.net 2001-2012