【问题标题】:batch script not working from .bat file批处理脚本无法从 .bat 文件中运行
【发布时间】:2013-12-12 11:08:47
【问题描述】:

我写了一个衬里,让我可以开始选美并从我的%HOMEPATH%/.ssh 文件夹中加载所有.ppk 文件

这里是:

start pageant && timeout 1 && FOR %k in ("%HOMEPATH%\.ssh\*.ppk") do start pageant %k

超时是为了防止出现多个选美实例(仅限 WIN7,我知道)

所以这仅在从命令行运行时有效。选美比赛开始并加载所有键。

但现在我想把它放在一个.bat 文件中,这样我就可以将它添加到我的startup 文件夹中。

我尝试了所有这些组合:

start pageant && timeout 1 && FOR %k in ("%HOMEPATH%\.ssh\*.ppk") do start pageant %k

start pageant
timeout 1
FOR %k in ("%HOMEPATH%\.ssh\*.ppk") do start pageant %k

start pageant && timeout 1 && FOR %k in ("C:%HOMEPATH%\.ssh\*.ppk") do start pageant %k

start pageant
timeout 1
FOR %k in ("C:%HOMEPATH%\.ssh\*.ppk") do start pageant %k

start pageant && timeout 1 && FOR %k in ("C:\Users\Willem\.ssh\*.ppk") do start pageant %k

start pageant
timeout 1
FOR %k in ("C:\Users\Willem\.ssh\*.ppk") do start pageant %k

我还在 FOR 上尝试了几个选项,并尝试在任何地方删除和添加 start。 还有更多变体,当 FOR 循环运行时,我不断收到此错误

HOMEPATHk was unexpected at this time.

当我尝试通过 .bat 文件运行它时,它只是不起作用。 pageant.exe 已添加到我的 system32 文件夹中,我正在使用最新的稳定版本。

我在这里错过了什么菜鸟错误,这不会从批处理文件中运行?

【问题讨论】:

  • 在批处理文件中循环变量使用 sintax %%k

标签: windows batch-file for-loop cmd


【解决方案1】:

在作为批处理文件运行时将 % 加倍至 %%。这是一个特殊字符,从批处理运行时必须转义,解释为什么它从命令行工作而不是从批处理文件工作。

【讨论】:

    【解决方案2】:

    pageant最好多参数调用,而不是多次调用:

    pageant %a %b %c %d ... 
    

    如果已经打开,它将不再启动。

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多