У меня есть вопрос, касающийся пакетных файловпартия имя папки находкой внутри каталога
Так внутри этого каталога, скажем, C: \ Temp \ У меня есть две вещи, одна папка, а другой текст файл с именем «list.txt»
Как бы найти имя папки?
Благодаря
У меня есть вопрос, касающийся пакетных файловпартия имя папки находкой внутри каталога
Так внутри этого каталога, скажем, C: \ Temp \ У меня есть две вещи, одна папка, а другой текст файл с именем «list.txt»
Как бы найти имя папки?
Благодаря
Если вы просто хотите получить список подкаталогов текущего каталога:
dir /ad /b
Если вы находитесь в другом каталоге, вы можете просто сделать:
dir c:\temp /ad /b
/ad
означает список всех элементы с атрибутом «каталог» и /b
- это голый формат
Update:
Как Билл прокомментировал ниже, вы можете перебрать выход Dir ЦМДА и установить переменное окружение. Ловушка здесь заключается в том, что если есть более одной подпапки, вы не будете знать, какой из них будет «последним». Вот пример, который заказывает каталоги по имени (/ о) и установив переменную окружения MY_ENV_VAR на имя последней вложенной:
for /f "delims=" %%a in ('dir "c:\temp" /on /ad /b') do @set MY_ENV_VAR=%%a
Как и в сторону, если вы собираетесь делать гораздо больше программирования сценариев , вы можете потратить некоторое время на некоторые основы PowerShell, что дает вам гораздо более программный контроль.
Get-ChildItem | where {$_.PSIsContainer}
Я нахожу, что пакетные скрипты будут разочаровывать в работе через некоторое время.
Попробуйте это:
for /d /r "C:\temp" %%i in (*.*) do echo %%~i
я могу получить имя, будет ли способ хранить это в переменной? – emochoco
Да. - для/f "delims =" %% a in ('dir "c: \ temp"/ad/b') do @set DIRNAME = %% a - Примечания: 1) Если имеется более одного имени каталога , только последний будет установлен в переменной DIRNAME. 2) При вводе в командной строке cmd.exe используйте% a вместо %% a (два% для использования в пакетном скрипте, один% при вводе в командной строке). –
Спасибо, это работает! – emochoco