我的Windows批处理(.bat)文件出了什么问题?

时间:2008-11-20 13:36:15

标签: windows batch-file

我创建了一个简单的批处理文件(.bat),其中包含一系列要自动触发到命令窗口的命令。批处理看起来像这样:

mmd dll1.dll -mf -aW
mmd dll2.dll -mf -aW
mmd dll3.dll -mf -aW

如果我将一堆cmds复制并粘贴到命令窗口中,它们都会正确执行。但是,如果我尝试直接将批处理文件拖到命令窗口并执行它,则第一个命令会启动并最终无法成功执行。为什么呢?

我运行命令的命令窗口需要在命令成功运行之前设置很多环境变量。当我拖动批处理文件(使用绝对路径)时,我似乎从未设置这些变量。批处理文件中的命令是否与托管命令窗口在相同的上下文中运行?那我该怎么办?

5 个答案:

答案 0 :(得分:1)

它正在执行带有相对于.bat文件的路径的拖入文件(而不是那些dll实际上在哪里)?

答案 1 :(得分:1)

您的命令中可能会出现影响批处理文件的特殊字符,例如%。你需要逃脱/删除这些。

否则,它可能与您正在运行的程序有关,要么弄乱了终端,要么非常依赖于它的环境。你有任何相关信息吗?尝试只运行批处理文件中的第一行。

答案 2 :(得分:1)

您是否尝试在“.bat”中的命令之前添加“call”?

通过在cmd行之前添加“call”,可以保证在子进程结束时父进程继续工作。

答案 3 :(得分:0)

您是否在引用正在调用的文件名?并且文件名是否在不同的行上? (如果没有,他们应该是)

答案 4 :(得分:0)

您的PATH设置正确吗? 执行批处理时,您是否在正确的目录中? 您是否在批处理文件中检查了不可见的无效字符?