Поиск имен файлов, содержащих пространство

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

Это работает хорошо с программным обеспечением, имена которого не содержат пробелы, но мне нужен он для работы с программным обеспечением, делает.

этот код хорошо работает потому что thereis никакое пространство в названии программного обеспечения (firefox.exe):

for /f %%a in ('dir /s /b \\sharedfolder\*firefox*.exe') do %%a

если я пробующий тот же код программным обеспечением, которое имеет пространство на имя, оно не работает,

например, for /f %%a in ('dir /s /b \\sharedfolder\mozzila *firefox* 36.0.4.exe') do %%a

посмотрите на название программного обеспечения, и Вы поймете то, что я имел в виду.

-1
задан 27 March 2015 в 11:02
2 ответа

Попробуйте что-то вроде этого:

for /f %a in ('/s /b \\sharedfolder\*firefox*.exe') do "%a"

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

0
ответ дан 5 December 2019 в 20:36
rem    ↓↓↓↓↓↓↓↓↓
for /f "delims=" %%a in ('dir /s /b "\\sharedfolder\mozzila *firefox* 36.0.4.exe"') do (
    rem  ↓   ↓  note double quotes  ↑                                           ↑    
    ECHO "%%a"
)

Объяснение :

  • "delims =" параметр подавляет токенизация вывода dir / B ;
  • Двойные кавычки : если один параметр содержит пробелы, вы все равно можете передать его как один элемент , заключив в " кавычки "- это хорошо работает для длинных имен файлов. ;
  • ECHO "%% a" : рабочая команда отображается только для целей отладки; удалите слово ECHO не раньше чем отладка!
0
ответ дан 5 December 2019 в 20:36

Теги

Похожие вопросы