Открыть только каталог в данном каталоге

1

Я пытаюсь написать простой командный файл, который при запуске будет перемещать и переименовывать некоторые файлы в определенном каталоге. Я знаю, что могу перейти к каталогу в командной строке с

cd "path_to_directory"

Проблема заключается в том, что имя этого каталога часто меняется при обновлении программы, которая его использует. Я не хочу менять командный файл каждый раз, когда меняется имя каталога, чтобы заставить его работать правильно. Тем не менее, это единственный каталог, который находится в родительском каталоге. Зная об этом, есть ли способ заставить мой пакетный файл перейти к нему автоматически?


источник
попробуйте перейти в каталог по этому пути: cd *
Ромео Нинов
Вы спрашиваете, есть ли способ перейти к папке в пакете, к папке, имя которой изменяется, без обновления пакетного файла при каждом изменении имени папки?
Ramhound
@Ramhound да, программа обновляется каждые несколько недель, и это меняет имя каталога. Я бы предпочел не искать и находить то, на что меняется имя, а затем изменять командный файл.
1
Тот факт, что я попросил разъяснений, означает, что вы должны убедиться, что вопрос ясен.
Ramhound
На случай, он действительно ответил, так что, если вы все еще хотите, чтобы он разъяснил дальше, возможно, вам следует быть более ясным в отношении того, что вы хотите разъяснить
шатание

Ответы:

1

Из родительского каталога будет работать любое из следующих:

for /d %d in (*) do cd "%~d"

for /f "delims=" %d in ('dir /ad /b') do cd "%~d"

Обратите внимание, что это будет работать только при условии, что вы указали условие, то есть, что родительский каталог содержит только один подкаталог, на который вы хотите переключиться.

Каран
источник
Я думаю, что% d в порядке. Если в каталоге есть пробелы, CD все равно не нуждается в кавычках вокруг него
barlop
Я так полагаю. Я просто хотел бы привести все имена файлов / каталогов с пробелами по привычке, чтобы предотвратить возможные непредвиденные ошибки.
Каран
Также стоит отметить, что ваш ответ работает только потому, что у него есть только один каталог. С более чем одним это происходит pastebin.com/RPAQNtRw (как вы знаете), и тогда нужно будет pushd / popd / cd ..послеdo
barlop
Да, я не упоминал об этом, потому что это явно часть вопроса. Это не означает, что это универсальное решение для повторного использования в нескольких подкаталогах.
Каран
Да, я не предлагал универсального решения для повторного создания нескольких подкаталогов ... скорее, я просто предлагал указать, что это для случая, когда у вас есть один каталог. Это делает ответ более понятным, потому что тогда не нужно возвращаться к вопросу, чтобы прочитать более тонкую точку его вопроса. И это проясняет, что ответ / нет.
Барлоп