Разное → Командный файл: Перенос каталогов и файлов из одного места в другое
Недавно возникла необходимость написать задание, которое будет переносить каталоги с файлами с одного компьютера на другой. Имена каталогов не известны. Простого решения в интернете не нашлось, поэтому пришлось использовать некоторые возможности командный файлов.
В итоге написал небольшой скрипт, который осуществляет перенос папок средствами MS DOS:
| 1 | move /Y c:out*.* c:in |
| 2 | DIR /B /AD c:out >dir.txt |
| 3 | FOR /F %%I IN (dir.txt) DO ( |
| 4 | move /Y c:out%%I %1 c:in |
| 5 | ) |
| 6 | DEL dir.txt |
Алгоритм простой:
получаем список каталогов папки c:\in и записываем его в текстовый файл dir.txt
Обрабатываем содержимое этого текстового файла с помощью команды FOR с ключом /F:
| 1 | FOR /F ["ключи"] %переменная IN (имя файла) DO команда [параметры] |
Данная команда позволяет получить доступ к строкам в текстовом файле с использованием ключей:
skip=n - пропустить n строк от начала файла
eol=<символ> - не использовать строки, начинающиеся с заданного символа.
tokens=n - брать для обработки n-е слово в строке
В нашем случае никаких параметров не задаем.
