У меня есть и пакетный скрипт для выполнения команды на удаление нескольких доп. Пример:
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% насчет файлов только для чтения ...
Цитаты "
не используются вокруг параметров, потому что единственные данные, предоставленные пользователем, представляют собой одну букву, а в предварительно записанных параметрах нет пробелов.