Кто-нибудь из способов получить доступ к файлам и каталогам, которые имеют %
в своем имени (который является действительным) из командной строки? В частности, если есть два %
и текст между ними соответствует переменной окружения.
Например, если существует файл с именем C:\blah\%temp%.txt
или папка с именем C:\Program Files\%temp%\
, ни одно из следующих действий не будет работать, поскольку переменная раскрывается:
> dir "c:\blah\%temp%.txt"
> dir "c:\blah\^%temp^%.txt"
> dir "c:\blah\%%temp%%.txt"
> dir "c:\blah\\%temp\%.txt"
> dir "c:\program files\%temp%"
> dir "c:\program files\^%temp^%"
> dir "c:\program files\%%temp%%"
> dir "c:\program files\\%temp\%"
Использование подстановочных знаков будет работать, но не будет однозначно выбирать файл / папку и может включать другие:
> dir "c:\blah\?temp?.txt" (also shows ztempz.temp, 1tempa.txt, etc.)
> dir "c:\program files\?temp?" (likewise)
(Это расстраивает, потому что время от времени - обычно, когда по какой-либо причине перезапускается Explorer - переменные среды перестают расширяться, и в некоторых местах, где они используются, в конечном итоге создаются файлы или каталоги с переменной среды в нем. Например, поскольку я настроил Chromium для хранения своего кэша в подкаталоге %temp%
, если переменная расширяется, это нормально, но когда этого не происходит, Chromium создает каталог с именем %temp%
в своем собственном каталоге и сохраняет кеш - который может стать большим - там. Я хочу добавить строку в мой скрипт очистки временного / ненужного файла, чтобы автоматически удалить эту папку, если она существует, но я не могу понять, как получить к ней доступ из командной строки, не прибегая к подстановочным знакам.)