Назад | Перейти на главную страницу

пакетная usb-буква выполнить команду

У меня есть и пакетный скрипт для выполнения команды на удаление нескольких доп. Пример:

set /p drive=Choose the letter of usb:
if %drive%== E goto E

Пример (если вы выбрали E)

E:
del /f /q E:\*.lnk *.inf *.init

Но удалите только первый (* .lnk). Остальное перенаправить на диск c (где я выполняю пакет) Пример:

Can't find C:\*.inf

Я не хочу этого делать:

del /f /q E:\*.lnk
del /f /q E:\*.inf
del /f /q E:\*.init

Как это исправить? Спасибо

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

del /f /q E:\*.lnk E:\*.inf E:\*.init

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

set /p drive=Choose the letter of usb:

del /f /q %drive%:\*.lnk %drive%:\*.inf %drive%:\*.init

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

:TOP
set /p drive=Choose the letter of usb:
If "%drive%" EQU "" Goto :TOP
Set drive=%drive:~0,1%
del /f/q/s/a %drive%:\*.lnk %drive%:\*.inf %drive%:\*.init

Принимает только первый набранный символ и не проверяет отсутствие условных значений.

В /s выполнит проверку файла во всех подпапках, начиная с указанного пути. В /a удалит все файлы, даже если они скрыты. Не уверен на 100% насчет файлов только для чтения ...

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