5

Два случая:

  1. Внутри рабочего каталога есть только одна папка.
  2. Внутри рабочего каталога есть куча папок, и вам нужно перемещаться внутри первой доступной папки, отсортированной по алфавиту.

2 ответа2

16
  1. Введите cd и добавьте пробел (пока не нажимайте Enter ).
  2. Нажмите Tab один раз, чтобы добавить первый доступный каталог
  3. Если вы хотите следующий, продолжайте нажимать Tab

Вкладка в командной строке Windows работает иначе, чем в Linux. В Linux он откажется завершить слово, если есть несколько возможностей, и он перечислит их, если вы настаиваете. В Windows нажатие клавиши Tab несколько раз обведет возможности, и это может даже перезаписать то, что вы уже ввели.

1

Вы должны использовать цикл 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 и проверка цикла на наличие гарантирует, что вы получите только первый каталог.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .