我正在尝试创建一个.bat文件,将Acrobat DC设置为多种文件类型的默认程序,因为我需要在我的一位同事意外部署Acrobat Reader DC之后在办公室设置中使用多台计算机所有的工作站。
目前我所拥有的是:
FTYPE Acrobat.Document.2015=C:\Program Files (x86)\Adobe\Acrobat 2015\Acrobat\Acrobat.exe "%1"
ASSOC .pdf=Acrobat.Document.2015
但在运行脚本(作为管理员)后,当我输入
时FTYPE Acrobat.Document.2015
检查,输出:
Acrobat.Document.2015=C:\Program Files (x86)\Adobe\Acrobat 2015\Acrobat\Acrobat.exe ""
我不确定为什么在运行脚本时没有传递%1,因为当我将整个命令输入CMD时它可以正常工作。知道为什么会这样吗?
答案 0 :(得分:1)
这是因为%1
在批处理文件中有特殊含义 - 它表示传递给批处理文件的命令行参数:
命令行参数(或参数)是传递给的任何值 批处理脚本:
C:> MyScript.cmd January 1234 "Some value"
参数也可以通过CALL传递给子程序:
CALL :my_sub 2468
您可以使用
%
后跟它来获取任何参数的值 命令行上的数字位置。传递的第一个项目是 始终%1
第二项始终为%2
,依此类推
来源 - parameters。
由于您没有使用任何参数调用批处理文件%1
是一个空字符串。
为了将文字%1
传递给ftype
命令,您需要escape %
的正常含义,使用双%%
和使用%%1
代替%1
。
请注意,您还应该引用ftype
的第一个参数,因为它包含空格。
修改后的批处理文件:
FTYPE Acrobat.Document.2015="C:\Program Files (x86)\Adobe\Acrobat 2015\Acrobat\Acrobat.exe" "%%1"
ASSOC .pdf=Acrobat.Document.2015