
Я пытаюсь создать bat-файл, который переместит некоторые файлы ECF из папки в новую папку.
Я успешно настроил bat-файл XCopy для других документов (.doc, .ppt) и т. д., скопировал текст из рабочего bat-файла XCopy и изменил *.doc на *.ecf.
@ECHO OFF
cd C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries
REM This is will copy over .doc documents
FOR %%f IN (*.ecf) DO XCOPY "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries" "%%f" "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
PAUSE
Неверное количество параметров встречается 9 раз, и именно столько существует файлов ECF. Похоже, что он их обнаруживает, но не копирует?
решение1
Неверное количество параметров
У вас есть:
cd C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries
FOR %%f IN (*.ecf) DO XCOPY "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries" "%%f" "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
Приведенная выше xcopy
команда имеет три аргумента:
"C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries"
"%%f"
"C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
Синтаксис xcopy
:
XCOPY source [destination] [options]
Ваш третий аргумент:нетвариант (см.xcopy).
Правильный способ вызова xopy
Поскольку вы уже находитесь в нужном каталоге, C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries
вам не нужен первый аргумент.
FOR %%f IN (*.ecf) DO XCOPY "%%f" "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
Или:
FOR %%f IN (*.ecf) DO XCOPY "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\Binaries\%%f" "C:\Users\Alex.Newton\Documents\Fixes\ProgramName\"
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD- Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- для /ф- Циклическая команда по результатам другой команды.
- xcopy- Копировать файлы и/или деревья каталогов в другую папку.