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


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

Да, я не упоминал об этом, потому что это явно часть вопроса. Это не означает, что это универсальное решение для повторного использования в нескольких подкаталогах.
— Каран

Да, я не предлагал универсального решения для повторного создания нескольких подкаталогов ... скорее, я просто предлагал указать, что это для случая, когда у вас есть один каталог. Это делает ответ более понятным, потому что тогда не нужно возвращаться к вопросу, чтобы прочитать более тонкую точку его вопроса. И это проясняет, что ответ / нет.
— Барлоп
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.