我创建了一个简单的批处理文件(.bat),其中包含一系列要自动触发到命令窗口的命令。批处理看起来像这样:
mmd dll1.dll -mf -aW
mmd dll2.dll -mf -aW
mmd dll3.dll -mf -aW
如果我将一堆cmds复制并粘贴到命令窗口中,它们都会正确执行。但是,如果我尝试直接将批处理文件拖到命令窗口并执行它,则第一个命令会启动并最终无法成功执行。为什么呢?
我运行命令的命令窗口需要在命令成功运行之前设置很多环境变量。当我拖动批处理文件(使用绝对路径)时,我似乎从未设置这些变量。批处理文件中的命令是否与托管命令窗口在相同的上下文中运行?那我该怎么办?
答案 0 :(得分:1)
它正在执行带有相对于.bat文件的路径的拖入文件(而不是那些dll实际上在哪里)?
答案 1 :(得分:1)
您的命令中可能会出现影响批处理文件的特殊字符,例如%。你需要逃脱/删除这些。
否则,它可能与您正在运行的程序有关,要么弄乱了终端,要么非常依赖于它的环境。你有任何相关信息吗?尝试只运行批处理文件中的第一行。
答案 2 :(得分:1)
您是否尝试在“.bat”中的命令之前添加“call”?
通过在cmd行之前添加“call”,可以保证在子进程结束时父进程继续工作。
答案 3 :(得分:0)
您是否在引用正在调用的文件名?并且文件名是否在不同的行上? (如果没有,他们应该是)
答案 4 :(得分:0)
您的PATH设置正确吗? 执行批处理时,您是否在正确的目录中? 您是否在批处理文件中检查了不可见的无效字符?