Xcopy что означает имя файла или каталога как убрать
Перейти к содержимому

Xcopy что означает имя файла или каталога как убрать

  • автор:

XCOPY still asking (F = file, D = directory) confirmation [duplicate]

My batch script xcopy is still asking F = file, D = directory confirmation even though I have added /F in the script, the log is showing as below. Please help on how to avoid asking confirmation.

aschipfl's user avatar

7 Answers 7

The /I switch (not /F as you mentioned in your question) prevents xcopy from asking whether the destination is a file or a directory only if multiple source files are given, so if the source is a directory, or if wildcards ? or * are used. If the destination already exists, such prompt does never appear.

There are the following scenarios (depending on the provided values of %source% and %target% ):

a single source file, the destination is a file:

the /I switch is useless, so you need to pipe F into the xcopy command line:

provided that the /Y switch is given (to force overwriting), you could also create the target file in advance (empty file):

a single source file, the destination is a directory:

the /I switch is useless too; you can pipe D into the xcopy command line:

or you can simply append a \ to the destination:

although this causes trouble when %target% specifies the current directory of a drive like D: for instance, because D: means the current directory of this drive whereas D:\ means the root directory of it;

or you create the destination directory in advance:

the 2> nul portion suppresses the error message in case the directory already exists;

multiple source files, the destination is a file:

this is usually a senseless situation, because you tell xcopy to copy each source file to the same destination file, thus attempting to overwrite it;

multiple source files, the destination is a directory:

the /I switch makes sense here:

the pipe option also works here:

so does appending a \ to the destination (regarding the limitation as mentioned above):

or you create the destination directory in advance:

Conclusion

The most flexible and secure solution is to pipe the desired selection ( F or D ) into the xcopy command line. (Note that the query is locale-dependent.)

Supplement

There are some minor issues in your code fragment I want to mention here:

  • you should generally use the \ as a path separator as this is the Windows standard character for that purpose (although / works too in most cases);
  • there is -1111 appended to your second net use command line; if this constitutes the password for the resource, it should be moved before the /USER option; otherwise just remove it;
  • your set command lines introduce problems with some special characters (like & , ^ , ( , ) ); to avoid such, state set «source=%

XCOPY — описание команды и примеры использования

XCOPY - описание команды и примеры использования

XCOPY — Копирует файлы и каталоги, включая подкаталоги.

Синтаксис

xcopy источник [результат] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:мм-дд-гггг]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [</a|/m>] [/n] [/o] [/x] [/exclude:файл1[+[файл2]][+[файл3]] [</y|/-y>] [/z]

Параметры

Параметр Описание
источник Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр должен задавать или диск, или путь.
результат Задает место, куда будут скопированы файлы. Параметр может включать имя диска с двоеточием, имя каталога, имя файла или их комбинацию.
/w Выводит следующее сообщение с ожиданием подтверждения начала копирования: Нажмите любую клавишу, чтобы начать копирование файлов
/p Запрашивает подтверждение при создании каждого файла-результата.
/c Игнорирует ошибки.
/v Проверяет каждый скопированный файл на соответствие его оригиналу.
/q Отменяет вывод на экран сообщений команды xcopy.
/f Выводит имена исходных файлов и файлов-результатов в процессе копирования.
/l Отображает список копируемых файлов.
/g Создает незашифрованные файлы-результаты.
/d[:мм-дд-гггг] Копирует только файлы, измененные не ранее заданной даты. Если не включить значение мм-дд-гггг, команда xcopy копирует все файлы-источники, которые новее существующих файлов-результатов. Эта возможность позволяет обновлять только измененные файлы.
/u Копирует (обновляет) только те файлы-источники, которые уже существуют в каталоге результата.
/i Если источником является каталог или источник содержит подстановочные знаки и результат не существует, команда xcopy считает, что результат — это имя каталога, и создает новый каталог. Затем xcopy копирует все указанные файлы в новый каталог. По умолчанию команда xcopy запрашивает подтверждение, является ли параметр результат каталогом или файлом.
/s Копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.
/e Копирует все подкаталоги, включая пустые. Параметр /e используется с параметрами /s и /t. /t Копирует только структуру подкаталога (т. е. дерево), а не файлы. Для копирования пустых каталогов следует задать ключ /e.
/k Копирует файлы с атрибутом «только для чтения» с сохранением этого атрибута для скопированных файлов, оригиналы которых имеют этот атрибут. По умолчанию команда xcopy удаляет атрибут «только для чтения».
/r Копирует файлы с атрибутом «только для чтения».
/h Копирует системные и скрытые файлы. По умолчанию команда xcopy не копирует системные и скрытые файлы.
/a Копирует только те файлы, которые имеют установленный атрибут «архивный». При использовании параметра /a атрибут «архивный» у исходных файлов не меняется.
/m Копирует только те файлы, которые имеют установленный атрибут «архивный». В отличие от параметра /a, параметр /m очищает атрибут «архивный» у скопированных файлов.
/n Копирует с использованием коротких имен файловой системы NTFS. Параметр /n требуется при копировании из файловой системы NTFS в файловую систему FAT или когда на диске-результате требуется использование соглашения об именах файлов как в файловой системе FAT (8.3). Файлы могут записываться в файловую систему FAT или NTFS.
/o Копирует сведения о принадлежности файлов и избирательной таблице управления доступом (DACL).
/x Копирует сведения о параметрах аудита файла и системной таблице управления доступом (SACL) (подразумевается наличие /p). /exclude:файл1[+[файл2]][+[файл3]] Определяет список файлов, содержащих строки.
/y Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла.
/-y Выдает запрос на подтверждение перезаписи существующего конечного файла.
/z Копирует по сети в режиме перезапуска.
/? Отображает справку в командной строке.

Примечания

    • Использование параметра /exclude
      Построчный вывод всех строк в каждом файле. При соответствии выведенной строки части пути копируемого файла, он исключается из процесса копирования. Например, если указана строка «\Obj\», исключается все файлы, расположенные в каталоге «Obj». Например, если указана строка «.obj», исключается все файлы с расширением .obj.
    • Использование параметра /z
      Если во время фазы копирования теряется сетевое подключение (например, если сервер переходит автономный режим, разрывая подключение), копирование возобновляется после восстановления подключения. Использование параметра /z команды вызывает также отображение доли (в процентах) завершенной операции копирования для каждого файла.
    • Использование параметра /y в переменной среде COPYCMD. Можно применять параметр /y в переменной среде COPYCMD. Эта настройка может быть переопределена использованием параметра /-y в командной строке. По умолчанию если команда copy выполняется не в пакетной программе, при замене требуется подтверждение.
    • Копирование зашифрованных файлов
      При копировании файлов на том, не поддерживающий шифрованную файловую систему (EFS), возникнет ошибка. Следует предварительно расшифровать файлы или копировать их на том, поддерживающий EFS.
    • Добавление файлов
      Чтобы объединить файлы, укажите один файл-результат, но несколько файлов-источников (с помощью подстановочных знаков или формата файл1+файл2+файл3).
    • Значение по умолчанию для результата
      Если параметр результат не задан, xcopy будет копировать файлы в текущий каталог.
    • Указание в качестве результата файла или каталога
      Если параметр результат не содержит существующий каталок или не заканчивается обратной чертой(\), выводится следующее сообщение:Что означает destination:
      имя файла или каталога
      (F = файл, D = каталог)?Нажмите F, если файл или файлы должны копироваться в файл. Нажмите D, если файл или файлы должны копироваться в каталог.Чтобы устранить вывод этого сообщения, используйте параметр /i. В результате чего, команда xcopy предполагает, что результат является каталогом, если источник престаляет собой несколько файлов или каталогов.
    • Использование команды xcopy для установки атрибута «архивный» для файлов результата
      Команда xcopy создает файлы с установленным атрибутом «архивный», независимо от состояния этого атрибута у исходных файлов.
    • Сравнение команд xcopy и diskcopy
      Команда xcopy должна быть использована вместо diskcopy при копировании файлов и подкаталогов на диск другого формата. Так как команда diskcopy копирует диски по дорожкам, требуется, чтобы исходный диск и диск-результат имели одинаковый формат. Для команды xcopy это требование не нужно. Обычно следует использовать команду xcopy, если только не требуется получить два диска с одинаковыми образами.
    • Коды завершения программы xcopy

    Для анализа кодов завершения, выведенных командой xcopy, используйте параметр уровень_ошибки в командной строке if пакетных программ.

    В следующей таблице перечислены коды завершения с кратким описанием.

    Код завершения Описание
    0 Файлы скопированы без ошибок
    1 Файлы для копирования не найдены
    2 Нажата комбинация CTRL+C для остановки команды xcopy
    4 Возникла ошибка инициализации. Недостаточно места в памяти или на диске, введено неверное имя диска или неверный синтаксис вызова команды
    5 Диск защищен от записи

    Примеры использования

    Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B, введите:

    Чтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует использовать параметр /h:

    Чтобы обновить файлы в каталоге \Reports файлами из каталога \Rawdata, измененными после 29 декабря 1993 года, введите:

    Чтобы обновить файлы предыдущего примера, уже существующие в каталоге \Reports, независимо от их даты, введите следующую команду:

    Чтобы получить списк файлов, которые были бы скопированы в предыдущем примере, следует ввести команду:

    Список файлов, которые были бы скопированы, находится в файле Xcopy.out.

    Чтобы скопировать каталог \Customer и все подкаталоги \\Public\Address на сетевой диск H, сохранить у файлов атрибут «только для чтения», введите команду:

    Чтобы выдать предыдущую команду, убедиться, что команда xcopy создает каталог \Address и устранить вывод сообщение о создании нового каталога, добавьте параметр /i следующим образом:

    Для запуска программы xcopy и анализа кодов завершения можно создать пакетный файл и использовать оператор if для обработки кодов завершения в случае возникновения ошибок. Например, следующая пакетная программа использует замещаемые параметры для задания источникаxcopy и результата:

    Эта пакетная программа может быть использована для копирования всех файлов каталога C:\Prgmcode и его подкаталогов на диск B следующим образом:

    Командный интерпретатор подставляет C:\Prgmcode вместо параметра %1 и B вместо параметра %2, затем использует команду xcopy с параметрами /e и /s. Если при выполнении xcopy произошла ошибка, пакетная программа считывает код завершения и переходит на метку, указанную в соответствующей инструкции IF ERRORLEVEL. В результате на экран выводится сообщение о характере ошибки и осуществляется выход из пакетной программы.

    xcopy файл, переименовать, подавить» указывает ли xxx имя файла. » сообщение

    Это кажется довольно простым, и, возможно, я просто забываю правильный флаг, но как бы я, в одной команде, скопировать файл из одного каталога в другой и переименовать его в каталоге назначения? Вот моя команда:

    он предлагает мне следующее Каждый раз:

    делает TestConnectionExternalbinDebugwhee.config Укажите имя файла или имя каталога на целевом объекте (F = file, D = каталог)?

    Я хочу подавить это приглашение; ответ всегда F .

    19 ответов

    не используйте xcopy используйте copy вместо этого у него нет этой проблемы.

    xcopy обычно используется при выполнении рекурсивных копий нескольких файлов / папок или когда вам нужны функции проверки/запроса, которые он предлагает. Для одиночных копий файлов, copy команда работает просто отлично.

    чтобы обойти его.

    другой вариант — использовать подстановочный знак назначения. Обратите внимание, что это работает только в том случае, если имена файлов источника и назначения будут одинаковыми, поэтому, хотя это не решает конкретный пример OP, я подумал, что стоит поделиться.

    создаст копию файла » whee.конфиг.пример » в каталоге назначения без запроса файла или каталога.

    обновление: как уже упоминалось @chapluck:

    вы можете изменить «* » to «[newFileName].*» . Он сохраняется расширение файла, но позволяет переименовать. Или более хаки: «[newFileName].[newExt]*» изменить расширение

    в XCOPY есть какая-то недокументированная функция. вы можете использовать:

    xcopy » bin\development\whee.конфиг.пример» «c:\mybackup\TestConnectionExternal\bin\Debug\whee.config*»

    Я тестировал его только сегодня. 🙂

    вот в чем главная проблема «. Если Destination не содержит существующего каталога и не заканчивается обратной косой чертой (), появится следующее сообщение: .

    указывает ли destination имя файла или имя каталога в целевой (F = файл, D = каталог)?

    вы можете подавить это сообщение с помощью /i параметр командной строки, который заставляет xcopy предполагать, что местом назначения является каталог, если источником является более одного файла или каталога.

    потребовалось некоторое время, но все, что требуется, это RTFM.

    Итак, для этого есть простое исправление. Это конечно неудобно, но это работает. xcopy не предложит узнать, является ли назначение каталогом или файлом, если новый файл(имя файла) уже существует. Если вы предшествуете своей команде xcopy простым эхом новому имени файла, он перезапишет пустой файл. Пример

    Это из счета ответа.

    просто быть понятным для других.

    Если вы копируете один из одного места в другое и чтобы создать полную структуру каталогов, используйте следующую команду:

    да, поставьте обратную косую черту в конце имени файла и он не будет спрашивать вас, если это файл или каталог. поскольку в источнике есть только один файл, он будет считать, что это файл.

    xcopy src dest /I

    REM This assumes dest is a folder and will create it, if it doesnt exists

    вернемся к исходному вопросу:

    может быть сделано с двумя командами, например:

    просто добавляя «\..»по пути к файлу назначения создается каталог назначения, если он еще не существует. В этом случае

    , который является родительским каталогом несуществующий каталог

    по крайней мере для WIN7 mkdir не волнует, если каталог

    предлагаю robocopy вместо copy или xcopy . Используется как команда или в GUI на клиентах или серверах. Толерантность к сетевым паузам, и вы можете игнорировать атрибуты файлов При копировании копирования по атрибутам файлов. О, и он поддерживает многоядерные машины, поэтому файлы копируются намного быстрее «параллельно» друг с другом, а не последовательно. robocopy можно найти на MS TechNet.

    У меня была аналогичная проблема, и robocopy и xcopy не помогли, так как я хотел подавить комментарии и использовать другое имя файла назначения. Я нашел

    работа согласно моим требованиям.

    для дублирования больших файлов, xopy с / J переключатель является хорошим выбором. В этом случае просто передайте F для файла или D для каталога. Кроме того, можно сохранить задания в массиве для будущих ссылок. Например:

    при копировании файлов используйте copy вместо xcopy.

    например, копировать » bin\development\whee.конфиг.образец» «TestConnectionExternal\bin\Debug\whee.config»

    поскольку вы фактически не меняете имя файла, вы можете удалить имя файла из пункта назначения, и вопросов не будет.

    этот подход хорошо работает, когда конечный каталог гарантированно существует, и когда источником может быть файл или каталог.

    работайте, используйте ReName. и назовите его каким-нибудь загадочным именем, а затем переименуйте его в собственное имя

    CD «C:\Users\Public\Documents\My веб-сайты \ AngelFire

    XCopy /D /I /V / Y «C:\Users\Public\Documents\My веб-сайты\HostGator

    Ren «cop.htm «» Христос-наш-Пасха.htm»

    xcopy позволит вам скопировать один файл в указанную папку, это просто не позволит вам определить имя назначения. Если вам требуется имя назначения, просто переименуйте его перед копированием.

    ren » bin\development\whee.конфиг.пример» подхлестывают.config

    xcopy/R / Y «bin\development\whee.конфиг» «TestConnectionExternal\bin\Debug\»

    правильно, если вы хотите скопировать только файл и изменить его имя в пункте назначения:

    xcopy /f / y «bin\development\example.исполняемый» «TestConnectionExternal\bin\Debug\NewName.exe-файла*»

    и это будет работать нормально

    XCOPY С * в конце цели, чтобы скопировать файлы, существуют ли они или нет в месте назначения XCOPY с \ в конце цели для копирования папок и содержимого, независимо от того, существуют или нет в месте назначения

    исходный dest-файл RoboForm для файлов RoboForm источник DEST для папок

    вы не можете указать, что это всегда файл. Если вам не нужны другие функции xcopy, почему бы просто не использовать regular copy ?

    Xcopy что означает имя файла или каталога как убрать

    Копирует файлы и каталоги, включая подкаталоги.

    Синтаксис

    xcopy источник [результат] [/w] [ /p] [/c] [/v] [/q] [/f] [ /l] [/g] [/d[:мм-дд-гггг]] [/u] [/i] [/s [/e]] [/t] [ /k] [/r] [/h] [</a|/m>] [ /n] [/o] [/x] [/exclude:файл1[ +[файл2]][+[файл3]] [</y|/-y>] [ /z]

    Параметры

    Нажмите любую клавишу, чтобы начать копирование файлов

    /p Запрашивает подтверждение при создании каждого файла-результата. /c Игнорирует ошибки. /v Проверяет каждый скопированный файл на соответствие его оригиналу. /q Отменяет вывод на экран сообщений команды xcopy. /f Выводит имена исходных файлов и файлов-результатов в процессе копирования. /l Отображает список копируемых файлов. /g Создает незашифрованные файлы-результаты. /d[:мм-дд-гггг] Копирует только файлы, измененные не ранее заданной даты. Если не включить значение мм-дд-гггг, команда xcopy копирует все файлы-источники, которые новее существующих файлов-результатов. Эта возможность позволяет обновлять только измененные файлы. /u Копирует (обновляет) только те файлы-источники, которые уже существуют в каталоге результата. /i Если источником является каталог или источник содержит подстановочные знаки и результат не существует, команда xcopy считает, что результат это имя каталога, и создает новый каталог. Затем xcopy копирует все указанные файлы в новый каталог. По умолчанию команда xcopy запрашивает подтверждение, является ли параметр результат каталогом или файлом. /s Копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом. /e Копирует все подкаталоги, включая пустые. Параметр /e используется с параметрами /s и /t. /t Копирует только структуру подкаталога (т. е. дерево), а не файлы. Для копирования пустых каталогов следует задать ключ /e. /k Копирует файлы с атрибутом «только для чтения» с сохранением этого атрибута для скопированных файлов, оригиналы которых имеют этот атрибут. По умолчанию команда xcopy удаляет атрибут «только для чтения». /r Копирует файлы с атрибутом «только для чтения». /h Копирует системные и скрытые файлы. По умолчанию команда xcopy не копирует системные и скрытые файлы. /a Копирует только те файлы, которые имеют установленный атрибут «архивный». При использовании параметра /a атрибут «архивный» у исходных файлов не меняется. Сведения об установке атрибутов с помощью командыattrib. /m Копирует только те файлы, которые имеют установленный атрибут «архивный». В отличие от параметра /a, параметр /m очищает атрибут «архивный» у скопированных файлов. Сведения об установке атрибутов с помощью команды attrib. /n Копирует с использованием коротких имен файловой системы NTFS. Параметр /n требуется при копировании из файловой системы NTFS в файловую систему FAT или когда на диске-результате требуется использование соглашения об именах файлов как в файловой системе FAT (8.3). Файлы могут записываться в файловую систему FAT или NTFS. /o Копирует сведения о принадлежности файлов и избирательной таблице управления доступом (DACL). /x Копирует сведения о параметрах аудита файла и системной таблице управления доступом (SACL) (подразумевается наличие /p). /exclude:файл1[+[файл2]][+[файл3]] Определяет список файлов, содержащих строки. /y Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла. /-y Выдает запрос на подтверждение перезаписи существующего конечного файла. /z Копирует по сети в режиме перезапуска. /? Отображает справку в командной строке.

    Примечания

    • Использование параметра /v

    Начиная с Windows XP эта команда не используется. Она предназначена для обеспечения совместимости с файлами MS-DOS

    Построчный вывод всех строк в каждом файле. При соответствии выведенной строки части пути копируемого файла, он исключается из процесса копирования. Например, если указана строка «\Obj\», исключается все файлы, расположенные в каталоге «Obj». Например, если указана строка «.obj», исключается все файлы с расширением .obj.

    Если во время фазы копирования теряется сетевое подключение (например, если сервер переходит автономный режим, разрывая подключение), копирование возобновляется после восстановления подключения. Использование параметра /z команды вызывает также отображение доли (в процентах) завершенной операции копирования для каждого файла.

    Можно применять параметр /y в переменной среде COPYCMD. Эта настройка может быть переопределена использованием параметра /-y в командной строке. По умолчанию если команда copy выполняется не в пакетной программе, при замене требуется подтверждение.

    При копировании файлов на том, не поддерживающий шифрованную файловую систему (EFS), возникнет ошибка. Следует предварительно расшифровать файлы или копировать их на том, поддерживающий EFS.

    Чтобы объединить файлы, укажите один файл-результат, но несколько файлов-источников (с помощью подстановочных знаков или формата файл1+файл2+файл3).

    Если параметр результат не задан, xcopy будет копировать файлы в текущий каталог.

    Если параметр результат не содержит существующий каталок или не заканчивается обратной чертой(\), выводится следующее сообщение:

    Что означает destination:
    имя файла или каталога
    (F = файл, D = каталог)?

    Нажмите F, если файл или файлы должны копироваться в файл. Нажмите D, если файл или файлы должны копироваться в каталог.

    Чтобы устранить вывод этого сообщения, используйте параметр /i. В результате чего, команда xcopy предполагает, что результат является каталогом, если источник представляет собой несколько файлов или каталогов.

    Команда xcopy создает файлы с установленным атрибутом «архивный», независимо от состояния этого атрибута у исходных файлов. Для получения дополнительных сведений об атрибутах файлов команде attrib.

    Команда xcopy должна быть использована вместо diskcopy при копировании файлов и подкаталогов на диск другого формата. Так как команда diskcopyкопирует диски по дорожкам, требуется, чтобы исходный диск и диск-результат имели одинаковый формат. Для команды xcopy это требование не нужно. Обычно следует использовать команду xcopy, если только не требуется получить два диска с одинаковыми образами.

    Для анализа кодов завершения, выведенных командой xcopy, используйте параметр уровень_ошибки в командной строке if пакетных программ. Чтобы увидеть пример пакетной программы, обрабатывающей коды завершения с помощью if. В следующей таблице перечислены коды завершения с кратким описанием.

    Примеры

    Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B, введите:

    Чтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует использовать параметр /h:

    xcopy a: b: /s /e /h

    Чтобы обновить файлы в каталоге \Reports файлами из каталога \alldata, измененными после 29 декабря 2013 года, введите:

    Чтобы обновить файлы предыдущего примера, уже существующие в каталоге \Reports, независимо от их даты, введите следующую команду:

    Чтобы получить список файлов, которые были бы скопированы в предыдущем примере, следует ввести команду:

    Список файлов, которые были бы скопированы, находится в файле Xcopy.out.

    Чтобы скопировать каталог \Customer и все подкаталоги \\Public\Address на сетевой диск H, сохранить у файлов атрибут «только для чтения», введите команду:

    Чтобы выдать предыдущую команду, убедиться, что команда xcopy создает каталог \Address и устранить вывод сообщение о создании нового каталога, добавьте параметр /i следующим образом:

    Для запуска программы xcopy и анализа кодов завершения можно создать пакетный файл и использовать оператор if для обработки кодов завершения в случае возникновения ошибок. Например, следующая пакетная программа использует замещаемые параметры для задания источникаxcopy и результата:

    Эта пакетная программа может быть использована для копирования всех файлов каталога C:\Prgmcode и его подкаталогов на диск B следующим образом:

    copyit c:\prgmcode b:

    Где copyit — имя командного файла, текст которого приведен выше.
    Командный интерпретатор подставляет C:\Prgmcode вместо параметра %1 и B вместо параметра %2, затем использует команду xcopy с параметрами /e и /s. Если при выполнении xcopy произошла ошибка, пакетная программа считывает код завершения и переходит на метку, указанную в соответствующей инструкции IF ERRORLEVEL. В результате на экран выводится сообщение о характере ошибки и осуществляется выход из пакетной программы.

    Следует отметить, что XCOPY предназначена для работы с файлами и каталогами, но не с устройствами (например, c принтером).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *