Копирование файлов без знания буквы диска - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь упростить настройку новых ПК, и мы начали играть с копированием групповых политик.Я поместил все инструкции (копирование папки и выполнение файлов) в .bat, но теперь у меня проблема в том, что она работает только тогда, когда буква диска, которую я использую, равна E:\.Есть ли способ динамически настроить букву диска, а не жесткий код это?

Это всего лишь несколько строк кода, так как большинство происходит внутри .exe

xcopy "E:\LGPO" "C:\LGPO\" /s/h/e/k/f/c
cd C:\LGPO
lgpo.exe /g C:\LGPO\backup

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Просто скопируйте в путь, из которого расположен скрипт.В этом случае usb uaed (drive), также используйте /d с командой cd, когда вы меняете диски.

xcopy "%~d0\LGPO" "C:\LGPO\" /s/h/e/k/f/c
cd /d C:\LGPO
lgpo.exe /g C:\LGPO\backup

cd /? указывает:

ИспользоватьПереключатель / D для изменения текущего диска в дополнение к изменению текущего каталога для диска.

Переменная %~d0 будет использовать диск пути к пакетному файлу, где %~dp0 - диск \путь .. Так что в этом случае ваш пакетный файл находится внутри папки, нам нужно только использовать диск %~d0

0 голосов
/ 14 сентября 2018

Удалите букву диска из вашего пакетного скрипта.
Когда вы запускаете пакет с USB-карты, текущим диском является USB-карта.

xcopy "\LGPO" "C:\LGPO\" /s/h/e/k/f/c
pushd C:\LGPO
lgpo.exe /g C:\LGPO\backup

Если вам действительно нужен текущийбуква диска, вы можете использовать %~d0.

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