В настоящее время я работаю со старым сценарием для процесса, который существовал до того, как я взглянул на него, предпосылкой является автоматическое создание папки и копирование содержимого флэш-накопителя на диск C:. Ниже приведена часть скрипта, которая меня интересует:
xcopy "E:\directory" "c:\directory" /s /y
Это сценарий, который у меня есть сейчас, в настоящее время мне нужно менять первую запись в каталоге почти каждый раз, когда я подключаюсь к новому устройству, поскольку буква диска, отображаемая в сценарии, иногда отличается от того, что находится на локальном устройстве. Например, диск UBS будет D: на ноутбуке, но E: на большинстве настольных компьютеров или какой-либо другой буквой в случае устройства с несколькими периферийными устройствами.
Раньше скрипт выглядел примерно так:
xcopy "...\каталог" "c:\каталог" /s /y
Это не работает, так как файл .bat вернется с невозможностью найти указанный каталог на диске UBS. Когда я вручную меняю файл .bat на жесткую установку буквы USB-накопителя, все работает нормально, все каталоги копируются, и последующие сценарии выполняются нормально.
Мой вопрос, какие-либо идеи о том, как настроить сценарий xcopy для распознавания буквы динамического USB-накопителя и разрешить копирование без изменения сценария на каждом устройстве?
Спасибо!
xcopy "\directory" "c:\directory" /s /y
, поскольку путь, начинающийся с обратной косой черты, относится к корню текущего диска, или используйтеxcopy "%~d0\directory" "c:\directory" /s /y
, поскольку%~d0
ссылается диск (буква плюс двоеточие) первого аргумента - пакетный файл. Или используйте%~dp0
- диск и путь к пакетному файлу, заканчивающийся на\
. - person Mofi   schedule 16.08.2016