Два случая:
- Внутри рабочего каталога есть только одна папка.
- Внутри рабочего каталога есть куча папок, и вам нужно перемещаться внутри первой доступной папки, отсортированной по алфавиту.
Два случая:
cd
и добавьте пробел (пока не нажимайте Enter ).Вкладка в командной строке Windows работает иначе, чем в Linux. В Linux он откажется завершить слово, если есть несколько возможностей, и он перечислит их, если вы настаиваете. В Windows нажатие клавиши Tab несколько раз обведет возможности, и это может даже перезаписать то, что вы уже ввели.
Вы должны использовать цикл for, чтобы получить папку.
На диске с встроенной сортировкой по алфавиту (в формате ntfs) вы можете использовать более простой For /D
противном случае вам понадобится For /f
анализирующий вывод команды dir.
@Echo off
Set "FirstDir="
For /d %%D in ("X:\Path\to\workdir\*") do If not defined FirstDir Set "FirstDir=%%D"
PushD "%FirstDir%"
Echo current dir = %CD%
Pause
PopD
Для более надежной версии замените вышеуказанное на следующее:
For /F "delims=" %%D in ('Dir /B/AD/ON "X:\Path\to\workdir\*"') do If not defined FirstDir Set "FirstDir=%%D"
Сброс var FirstDir
и проверка цикла на наличие гарантирует, что вы получите только первый каталог.