Batch file 如何在批处理脚本中使用geany同时打开多个文件?
当我试图用批处理脚本在geany中打开多个文件时,我遇到了一个奇怪的问题 脚本很简单,放在我给他的文件夹中作为列表,在每个文件夹中,它都会在这里用geany打开Makefile。这是有效的;但是,它将首先打开第一个Makefile,然后等待我关闭窗口以打开第二个Makefile,依此类推。 它将在另一个选项卡中打开下一个Makefile,因此在最后我仍然打开了所有makefiles,但我需要关闭每个makefiles之间的窗口,并且我还有很多要打开(这就是为什么我制作了一个脚本--) 有人知道如何纠正这种奇怪的行为吗 我和geany一起在Linux中实现了它:它工作得很好。 我在Windows中用记事本制作的:效果很好。 但是带geany的windows并不像我希望的那样工作 我也尝试过使用命令Batch file 如何在批处理脚本中使用geany同时打开多个文件?,batch-file,geany,Batch File,Geany,当我试图用批处理脚本在geany中打开多个文件时,我遇到了一个奇怪的问题 脚本很简单,放在我给他的文件夹中作为列表,在每个文件夹中,它都会在这里用geany打开Makefile。这是有效的;但是,它将首先打开第一个Makefile,然后等待我关闭窗口以打开第二个Makefile,依此类推。 它将在另一个选项卡中打开下一个Makefile,因此在最后我仍然打开了所有makefiles,但我需要关闭每个makefiles之间的窗口,并且我还有很多要打开(这就是为什么我制作了一个脚本--) 有人知道如
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在Linux中实现了这一功能,它可以一次打开所有文件。我在这个问题中找到了一个可行的答案: 所以,我发现,当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”“
在后台启动文件,然后让脚本继续运行并打开其他文件
注:请注意,没有
“
”的启动/B
(也作为答案给出)对我不起作用,因为它询问我要用哪个程序打开文件 好的,由于您在集合中的引用,您的for
循环将只迭代一次,并在%%~C
中返回一些文件夹名称,这些文件夹名称由aspace
分隔;将其更改为set“FOLDERLIST=某些文件夹名称以空格分隔”
(请注意开头的引号;对于其他set
语句也是如此),这样引号本身就不再成为变量值的一部分,或者,如果其中一个列表项本身可能包含空格或其他特殊字符,请执行set FOLDERLIST=“Some”“文件夹”用空格“
”将名称“分隔”…此外,替换cd%%~C
(应为cd/D“%%~C”
)和cd..
分别替换为“%%~C”
,并且分别替换为…我的错,引号设置正确,正如您在我的代码中所说的那样。对于cd
…由于它现在正在工作,我想知道以哪种方式push
和popd
更好。pushd
存储当前工作目录并更改为新目录,然后popd
返回原始目录,因此,这些命令的目的是间歇性地更改目录;但是如果您喜欢,也可以使用cd
。。。