文件夹路径中到目标文件夹名称的批处理通配符(*),随时间变化

时间:2018-07-04 13:09:28

标签: windows batch-file cmd

我想批量定位一个文件夹,这可能会随着时间的推移更改其名称。假设我们有Folder 10102018,下次运行该批处理时,文件夹名称为Folder 20102018

从CMD中,我可以导航到C:\Fold*,结果为(C:\Folder 10102018) 使用批处理文件中的错误与The system cannot find the path specified.

命令是-> "..\..\Folder 1.1.10102018\Install.exe"

我想要实现的目的是使用其文件夹名称“ Folder *”的恒定位进入该文件夹,并忽略紧随其后的所有内容,因为它并不相关...但是很难解决。

一如既往地感谢您的帮助或替代想法!

3 个答案:

答案 0 :(得分:1)

我相信这就是您要寻找的(如果只有一个匹配的文件夹):

for /D %%I in ("..\..\Folder 1.1.*") do "%%~I\Install.exe"

通配符只能在路径的 last 元素中使用,而根本不能用于运行应用程序。

打开命令提示符窗口,键入for /?并阅读帮助文本以了解for [/D]的作用。

答案 1 :(得分:0)

问题是由于文件夹名称中的空格。您能删除文件夹名称中的空格然后尝试吗?

或使用_或-代替空格。

如果文件夹名称中有空格,则应使用“”。

答案 2 :(得分:0)

<块引用>

通配符只能用在路径的最后一个元素中,并且根本不能用于运行应用程序。 @aschipfl

cd "..\..\Folder 1.1.10102018\*"
Install.exe

单线

cd "..\..\Folder 1.1.10102018\*" && Install.exe

并弹出备份 2 个目录只需使用 cd ..\..