Автоматизировать копирование файлов из командной строки Windows - PullRequest
1 голос
/ 09 октября 2008

Скажем, у вас есть 100 каталогов, и для каждого каталога у вас есть файл с именем .pdf, хранящийся где-то еще. Если вы хотите переместить / скопировать каждый файл в каталог с таким же именем, это можно сделать в командной строке Windows?

Ответы [ 4 ]

4 голосов
/ 09 октября 2008

Это пакетный скрипт, который, вероятно, делает то, что вы хотите:

setlocal
set target_dir=D:\
set source_dir=C:\WINDOWS

for %%i in (%source_dir%\*.pdf) do move %%i %target_dir%\%%~ni.%%~xi

endlocal
2 голосов
/ 20 октября 2008

Из командной строки:

for /f %f in ('dir /s /b mypath\*.pdf') do @copy %~nxf myotherpath

Поскольку это командная строка, а не командный файл, вам нужен только%, а не %%.

dir / s / b является рекурсивным и пустым. (см. dir /?)

@ перед копированием останавливает эхо каждой команды копирования. Вы можете повторить их, если хотите, до вас.

% ~ nxf получает имя и расширение% f. (см. звонок /?)

2 голосов
/ 09 октября 2008

Вы можете сделать это, используя команду FOR . Что-то в строке:

for /f %%f in ('dir /s /b c:\source\*.pdf') do copy "%%f" c:\target

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

for /f %%f in (files.txt) do copy "%%f" c:\target
0 голосов
/ 09 октября 2008

Вам потребуется написать скрипт для перебора каждого файла (и его пути), извлечь имя файла - '. Pdf' и затем переместить файл в каталог с тем же именем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...