Имя папки в командном файле - PullRequest
2 голосов
/ 21 февраля 2011

Как можно получить имя папки в цикле for.У меня есть следующая структура каталогов

c:\Main\**FolderName1**\FolderName3\somefile.txt
c:\Main\**FolderName2**\FolderName4\somefile1.txt

И я хочу получить имя FolderName1 и FolderName2 внутри цикла for.

Вот как я сейчас поступаю:

set "errfolderpath=C:\Main\"
FOR /D /R %errfolderpath% %%K in (.\*) DO (
  SET folderName=%%~nK
  echo foldername=!folderName!
)

, когда я запускаю вышеупомянутую программу, она печатает имя всех подпапок, тогда как я просто хочу имя FolderName1 и FolderName2 и не зацикливать остальные папки.

Надеюсь, я смог это прояснить.Благодарю.

1 Ответ

0 голосов
/ 21 февраля 2011

Параметр /R folder указывает как начальную папку, так и рекурсивный поиск, в то время как вам нужен только первый, а не последний.

Итак, просто используйте вашу корневую папку с маской файла, например:

set "errfolderpath=C:\Main\"
FOR /D %%K in ("%errfolderpath%*") DO (
  SET folderName=%%~nK
  echo foldername=!folderName!
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...