Ответ 1
Вам нужно использовать:
for /f "delims=" %%a IN ('dir /b /s build\release\*.dll') do echo "%%a"
Это переопределяет разделители по умолчанию, которые являются TAB и SPACE
Как мне это изменить:
for /f %%a IN ('dir /b /s build\release\*.dll') do echo "%%a"
для работы, когда путь содержит пробелы?
Например, если это выполняется из
c:\my folder with spaces
он будет эхо:
c:\my
Спасибо
Вам нужно использовать:
for /f "delims=" %%a IN ('dir /b /s build\release\*.dll') do echo "%%a"
Это переопределяет разделители по умолчанию, которые являются TAB и SPACE
Я обошел это, добавив "тип" и добавив двойные кавычки, окружающие путь в предложении IN
FOR /F %%A IN ('type "c:\A Path With Spaces\A File.txt"') DO (
ECHO %%A
)
В этой статье я дал мне идею использовать "тип" в предложении IN.
Если вы не хотите иметь дело с "кавычками", вы можете использовать переключатель "s" в% ~ dpnx []... это приведет к получению коротких имен файлов, с которыми легко работать.
из командной строки...
for /f "delims=" %f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %~sdpnxf
внутри файла .CMD/.BAT вам нужно "убежать" от [%], например, удвоить [%%]
for /f "delims=" %%f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %%~sdpnxf