Сохраните и отобразите путь с пробелом, используя Dir / b и выбор пользователя. Batch File - PullRequest
0 голосов
/ 27 ноября 2018

Я пишу bat-файл, который сразу находит все папки и / или файлы и перечисляет их 1, когда пользователь может выбрать папку или файл.Проблема, с которой я сталкиваюсь, заключается в том, что, когда пользователь выбирает каждую папку в каталоге, он показывает только первую часть папки перед пробелом.

У меня есть каталог с папкой, в которой есть пробелыво имяПример: «Папка» отображается как «Папка» «Папка» с пробелами отображается как «Папка» «Другая папка» отображается как «Другая»

Если вы выберете папку с пробелом, вы получите сообщение об ошибке «Theсистема не может найти указанный путь. "

@echo off

setlocal enabledelayedexpansion

:: Sets directory as Network Drive an "cd" into it.
pushd "\\network\some\directory\"

:loop

set count=0

:: Read in files
for /f %%x in ('dir /b') do (
set /a count=count+1
set choice[!count!]=%%x
)


echo Select one:

:: Print list of files
for /l %%x in (1,1,!count!) do (
 echo %%x] !choice[%%x]:%cd%\=!
 )
 echo.


 :: Retrieve User input
 set /p select=? 
 echo.


 :: Check if string contains ".bat"
 echo !choice[%select%]! |findstr ".bat" >nul && (
 echo Success
 ) || (
 cd !choice[%select%]!
 goto :loop
 )

 pause

 popd

Я почти уверен, что мне просто нужно" "где-то, но я не смог его выяснить.

Заранее спасибо

1 Ответ

0 голосов
/ 28 ноября 2018

Чтобы не разбивать выходные данные команды dir /b, следует использовать параметр delims.Вы можете написать:

for /f  "delims=" %%x in ('dir /b') do whatever you want

Надеюсь, это поможет!

...