仅打开给定目录中的目录


1

我正在尝试编写一个简单的批处理文件,在运行时,将移动并重命名某个目录中的某些文件。 我知道我可以使用命令提示符导航到目录

cd "path_to_directory"

问题是该目录的名称会随着使用它的程序的更新而频繁更改。每次目录的名称发生变化时,我都不希望更改批处理文件,以使其正常工作。但是,它是其父目录中唯一的目录。知道这一点,有没有办法让我的批处理文件自动导航到它?


尝试以这种方式转到目录:cd *
Romeo Ninov

您是否询问是否有办法导航到批处理文件夹中名称发生更改的文件夹,而不是每次更改文件夹名称时都更新批处理文件?
Ramhound

@Ramhound是的,该程序每隔几周都会修补一次并更改目录的名称。我宁愿不必搜索并找到更改名称的内容,然后修改批处理文件。

1
我要求澄清的事实意味着你应该确保问题是清楚的。
Ramhound

在ramhound,他做了回复,所以如果你还想让他进一步澄清,也许你应该更清楚你要澄清什么
barlop

Answers:


1

从父目录中,以下任何一个都可以工作:

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

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

请注意,这仅在您指定的条件下才起作用,即父目录仅包含您要切换到的单个子目录。


我认为%d很好。如果目录有空格,CD仍然不需要它周围的引号
barlop

我想是这样。我只想引用所有带空格的文件/目录名称作为习惯,以防止任何可能无法预料的打嗝。
Karan

另外值得注意的是,这只能起作用,因为他只有一个目录。如果不止一个,就会发生这种情况 pastebin.com/RPAQNtRw (如你所知)然后需要一个pushd / popd / cd .. 之后 do
barlop

是的,我没有提到它,因为这显然是问题的一部分。这并不意味着是递归到多个子目录的通用解决方案。
Karan

是的,我并没有建议一个通用的解决方案,以递归多个子目录..而我只是建议说明这是为什么当你有一个目录在那里。它使得答案更具有可消化性,因为人们不必再回过头来回答问题的细节。它使得答案更清晰或更清楚。
barlop
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.