在这里,我想知道如何从cmd运行批处理文件(E:\Programfiles\bi\example.bat)



我尝试通过传递确切的路径来运行它:E:Program filesbiexample.bat但它不起作用。

好吧,如果你的路径正确,它应该可以工作。

"E:Program filesbiexample.bat"

Program Files里面有一个空间。这也意味着它需要用引号括起来。

在命令提示符下按 Ctrl +D/Ctrl + F将自动填充。这将确保您拥有正确的路径。来自帮助 (cmd /?)。

如果使用/F:ON 开关启用完成,则两个控件 使用的字符是 Ctrl-D 表示目录名称完成和 Ctrl-F 用于文件名完成。 禁用特定完成 字符,使用空格 (0x20) 的值,因为它不是 有效的控制字符。

路径应始终用双引号括起来,"因为空格后的每个子字符串都被视为新命令或切换命令。

如果您知道路径,只需输入"

"E:Program filesbiexample.bat"

或者,example.bat可能有其他开关,这些开关调用它存在的目录中的文件,然后通过您开始cmd.exe的路径进行搜索,即C:windowssystem32这将导致批处理文件启动,但无法按预期工作。因此,您可以简单地cd到路径,并在成功更改目录时运行它。

cd "E:Program filesbi" && example.bat

使用Tab键可以更轻松地实现上述目标,只需开始键入相关的目录,然后键入TAB,它将为您提供以给定名称开头存在的目录的预测。

例如,如果您不确定文件的位置并认为它是此名称的唯一文件,您可以简单地搜索它并在找到时执行。

for /f "delims=" %a in ('dir /S /B /A-D example.bat') do set "variable=%a" & "%variable%"

上面的行将从您运行它的目录中搜索,但搜索所有子文件夹,一旦找到,它将执行它。请注意,如果要从批处理文件运行上述内容,请向变量添加另一个%%a

for /f "delims=" %%a in ('dir /S /B /A-D example.bat') do set "variable=%%a" & "%variable%"

最新更新