当我尝试使用批处理脚本在geany中打开多个文件时,我遇到了一个奇怪的问题。
该脚本很简单,可以放在我给他的列表中的文件夹中,并且在每个文件夹中,它都会用geany打开Makefile。那行得通;但是,它将首先打开第一个Makefile,然后等待直到我关闭窗口以打开第二个Makefile,依此类推。 它将在另一个选项卡中打开下一个Makefile,所以最后我仍然打开了我所有的makefile,但是我需要关闭每个makefile之间的窗口,而且我有很多打开的地方(这就是为什么我制作了脚本-_- )
有人知道如何纠正这种奇怪的行为吗?
我在Linux上使用geany制作了它:效果很好。 我是在Windows中使用记事本制作的:效果很好。 但是,带有geany的Windows无法正常工作。
我也尝试过使用命令start
,但是它将询问我要打开哪个文件,然后什么也不做。
这是我的脚本,简化了:
rem set prog="C:\Program Files\Notepad++\notepad++.exe
set prog="C:\Program Files\Geany\bin\geany.exe
set FOLDERLIST="Some Folders Names Separate ByASpace"
for /d %%C in (%FOLDERLIST%) do (
cd %%~C
%prog% Makefile
cd ..
)
所以我希望它一次打开所有文件,而不必关闭每个文件之间的窗口。如您所见,我有一条rem线,其中记事本为prog,并且这一行按预期工作; geany不是。但是再次,我是用geany在Linux中制作的,它确实可以一次打开所有文件。
答案 0 :(得分:-1)
我在此问题内找到了一个有效的答案:SuperUser: Execute command line in background
因此,我发现,当geany打开并启动我的批处理脚本时,它可以完美运行。然后,我尝试在打开所有文件之前在批处理脚本中打开geany,但是它不起作用。然后,在一些建议下,我试图像恶魔般打开它。这就是先前引用的答案的帮助方式。
结果是:
rem set prog="C:\Program Files\Notepad++\notepad++.exe
set prog="C:\Program Files\Geany\bin\geany.exe
set FOLDERLIST="Some Folders Names Separate ByASpace"
for /d %%C in (%FOLDERLIST%) do (
cd %%~C
start "" %prog% Makefile
cd ..
)
似乎start ""
在后台启动文件,因此让脚本继续运行并打开其他文件。
PS:请注意,没有start /B
的{{1}}(也作为答案提供)对我不起作用,因为它询问我要打开哪个文件。