批处理 - 带空格的路径

时间:2016-10-02 00:50:12

标签: windows batch-file cmd startup

嘿大家看我的问题, 我一直在玩文件,我尝试了"start /D %appdata%\Microsoft\Windows\Start Menu\Programs\Startup\<File>.bat"

我这样做是为了制作一个循环来再次运行bat文件。 当我测试它时出现错误

&#34; C:\ Windows \ System32&gt; start / D%appdata%\ Microsoft \ Windows \ Start Menu \ Programs \ Startup \ .bat系统找不到文件Menu \ Programs \ Startup \。 。蝙蝠&#34;

<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
start /D AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\<File>.bat

如果您知道解决此问题的方法或改善我的蝙蝠的方法,请告诉我!

注意: 我以管理员身份运行它 .bat文件位于Startup文件夹中。

2 个答案:

答案 0 :(得分:1)

由于路径中有空格,因此需要围绕它的引号,并且/ D期望起始目录的文件夹路径。在这种情况下,它将%AppData%\Microsoft\Windows\Start解释为启动文件夹,将Menu\Programs\Startup\File.bat解释为要执行的文件。我很确定你并不是那个意思。除非您的批处理文件通过/D之后指定的文件夹中的相对路径引用外部依赖关系,否则您不需要指定/D开关。

如果您的默认Windows Startup文件夹中有批处理文件,则会执行该文件:

start "" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\File.bat"

答案 1 :(得分:1)

在我看来,问题不在于文件名,而在于批处理文件如何引用自身或循环。

因此:

对最后一行使用%0 表示法,例如Start "" "%~f0""%~f0"

<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
Start "" "%~f0"

或在顶部:Label添加标签,然后作为底线GoTo :Label

:Label
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
<Here is a command>
GoTo :Label

作为旁注,您可能希望查看在登录/启动时运行脚本的计划任务,并在此后定期继续执行此操作。