-1

Я пытался сделать это, но это не работает

:: variables
/min
SET odrive=%odrive:~0,2%
set backupcmd=xcopy /s /c /d /e /h /i /r /y
echo off

for /r C:\ %f in (*.jpg) do @copy "%drive%\all\pics"

@echo off
cls

3 ответа3

3

Я пытался сделать это, но это не работает

Существует ряд проблем с вашим командным файлом.


Использование %

Вам необходимо использовать %% в командном файле. % для командной строки.


Использование / мин

:: variables
/min

/min - «/min» не распознается как внутренняя или внешняя команда, работающая программа или командный файл. Я не уверен, что вы пытаетесь сделать с этим.


Использование odrive

SET odrive=%odrive:~0,2%

odrive уже определен? Если нет, будет установлено ~0,2 . В любом случае он не используется снова.


Использование backupcmd

set backupcmd=xcopy /s /c /d /e /h /i /r /y

Вы не используете backupcmd


Использование for

echo off

for /r C:\ %f in (*.jpg) do @copy "%drive%\all\pics"

Это не допустимое использование for . Вам нужно использовать %%f не %f .

copy принимает как минимум два параметра, источник и место назначения.

%drive% уже определен?

Попробуйте следующее for команды:

for /r C:\ %%f in (*.jpg) do @copy %%f "%drive%\all\pics"

Операция команды FOR может быть обобщена как ...

  • Взять набор данных
  • Сделать параметр FOR %% G равным некоторой части этих данных
  • Выполните команду (необязательно, используя параметр как часть команды).
  • Повторите для каждого элемента данных

Если вы используете команду FOR в командной строке, а не в пакетной программе, используйте только один знак процента:% G вместо %% G.

Источник для


Дальнейшее чтение

1

Попробуйте команду ROBOCOPY с параметром /MIR. Он рекурсивно просматривает все папки и копирует только что обновленные / новые файлы. Исходная структура каталогов воссоздается на цели. Использование, например

robocopy /mir <source path> <target path>
0

Я всегда думаю, что чем меньше, тем лучше. Почему бы просто не попробовать следующее?

xcopy /c/d/e/f/h/r/y c:\*.jpg .

заметки:

  • / е подразумевает / с
  • / Я не нужен, так как пункт назначения существует.
  • указывает только файлы jpg
  • пункт назначения "." указывает текущий каталог, предполагая, что файл bat находится на USB.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .