我有一个用于复制和移动内容的批处理文件,但是我在处理证书时陷入困境。我必须使用供应商提供的名为installrootcacert.cmd
的命令,但是我还需要传递证书的文件名,该文件的名称应为rootca.cer。我必须使用供应商提供的脚本,因此无法解决该问题。
通常我会像这样:
c:\vendor\Software\Conf\Security\installrootcacert.cmd rootca.cer
我尝试从批处理文件中call
进行命令,但是没有运气。
我尝试使用一个变量,但是由于该命令调用了其他几个进程,因此该命令后正在寻找“ rootca.cer”。如果将其放在变量中,其他进程将失败。我无法修改其他进程。
echo @off
cd E:\vendor\Software\Conf\Security\trustedCA
e:
call "e:\vendor\Software\Conf\Security\installrootcacert.cmd rootCA.cer"
答案 0 :(得分:0)
尝试以下方法。您需要调整echo语句和引号中的Excel Powerquery M
:
@
之所以可行,是因为在脚本中放置命令@echo off
cd E:\vendor\Software\Conf\Security\trustedCA
e:
call "e:\vendor\Software\Conf\Security\installrootcacert.cmd" rootCA.cer
会阻止所有命令的输出。如果您只有@echo off
,那么您实际上就是在回声这一点。 (最初暗示是双重提示)
至于引号,您要尝试将其作为命令传递,因此echo @off
call
时,需要确保传递正确的参数,这就是为什么您将文件路径放在引号中的原因。如果将WHOLE对象放在引号中,实际上并没有向rootCA.cer
命令发出call
。 (向LotPings表示最初的建议)。
答案 1 :(得分:0)
可能的解决方案可能是:
@echo off
cd /d "E:\vendor\Software\Conf\Security\trustedCA"
call "E:\vendor\Software\Conf\Security\installrootcacert.cmd" rootCA.cer
echo @off
替换为@echo off
,因为echo @off
将在cmd中回显@off
。/d
选项与cd
一起使用。call
命令中仅引用文件名,否则Windows会将其解释为完整的文件名(即E:\vendor\Software\Conf\Security\installrootcacert.cmd rootCA.cer
,因此文件名将为{{1 }}。