我在 Windows 10 中工作。
这是我保存在 .bat 文件中的代码:
%windir%\System32\cmd.exe "/K" C:\Users\Alex\AppData\Local\Continuum\anaconda3\Scripts\activate.bat C:\Users\Alex\AppData\Local\Continuum\anaconda3
"c:\Arch\Upload from DB to Redcap.py"
如果我手动打开命令提示符(cmd)并执行每一行,一切正常。但是,如果我执行具有上述内容的 .bat 文件,第一行执行得很好,但第二行只是将当前文件夹更改为c:\Arch\
文件夹并且Upload from DB to Redcap.py
文件不执行。如何修复我的代码,以便我的代码执行Upload from DB to Redcap.py
文件的第二行位于c:\Arch\Upload from DB to Redcap.py
?
如果 python.exe 在您的 中
PATH
,您可以尝试在有问题python.exe
的行之前添加:另一种选择是使用以下
start
命令:/b
告诉start
不要打开新cmd
窗口,并""
避免将其解释"c:\Arch\Upload from DB to Redcap.py"
为标题。cmd /keep vs cmd /continue
如果您正在使用
/k
,并且不需要引号,则在您键入exit
command 之前,bat/cmd
将永远不会执行下一个命令。您启动了一个“解释器”并且没有离开/退出/关闭它,只有在此之后您的下一个命令才会被执行......
cmd /keep
当您通过键入“cmd /k”打开一个新的解释器来使用终端时,它可以工作,因为您直接与它交互,在这种情况下,在 bat 中,工作的在线行是:
cmd /k "...\enable.bat"
,命令中的 bat 文件也被执行,因为它在同一条线上。在 bat 中,
cmd / k somefile.bat [or] some command
它将启动一个新的解释器并保持打开状态以供输入,直到您键入 exit 或关闭当前 cmd 窗口。否则,它将一直等待您插入一个或多个命令来执行它们,并且在代码中,下一次执行在下一行:(“C:\Arch\Upload from DB to Redcap.py”),它除非您为此当前解释器键入它,否则将永远不会运行,或者键入exit
退出并返回到先前的解释器运行下一行命令。尝试替换为,您的解释器将逐行执行您的代码...
cmd /c
但我认为这甚至不是
cmd
运行他的电话bat/cmd
。命令解释器 (
cmd.exe
) 将执行您的bat
/cmd
,或者,当您单击它时,无需添加特定指令来执行您的bat
脚本。将此代码保存为 file.bat 并尝试:
此外,如果您在一个
bat
文件中使用来执行另一个文件bat
文件,那么使用call c:\file.bat
...[√]命令
[√] cmd /MS 文档
[√]如何在一个bat文件中运行多个bat文件