在Windows中将命令行参数传递给gnuplot

在Windows中将命令行参数传递给gnuplot,windows,cmd,fortran,gnuplot,Windows,Cmd,Fortran,Gnuplot,我有一个Fortran 90程序,可以将一些数据输出到.txt文件。 数据将用gnuplot绘制 我能够用 CALL SYSTEM("start wgnuplot") 这相当于类型 start gnuplot 在Windows命令行提示符中 但是,我想让程序告诉gnuplot下一步要做什么,即,将目录更改为正确的目录,并绘制我的file.txt 总而言之,这归结为一个更简单的问题: 如何在Windows中传递启动gnuplot并为其提供一些附加命令的命令行 我试着用一些更简单的方法,比如绘

我有一个Fortran 90程序,可以将一些数据输出到.txt文件。 数据将用gnuplot绘制

我能够用

CALL SYSTEM("start wgnuplot")
这相当于类型

start gnuplot 
在Windows命令行提示符中

但是,我想让程序告诉gnuplot下一步要做什么,即,将目录更改为正确的目录,并绘制我的file.txt

总而言之,这归结为一个更简单的问题:

如何在Windows中传递启动gnuplot并为其提供一些附加命令的命令行

我试着用一些更简单的方法,比如绘制y=x。 在正常的gnuplot窗口中,这只是图x

从cmd.exe(Fortran的CALL SYSTEM()调用它)中,我尝试了:

start wgnuplot plot x
start wgnuplot plot x -pause
start wgnuplot plot x -persist
start wgnuplot plot x -noend
start wgnuplot plot x /noend
和其他的,包括每一个可能的变体,例如带引号或不带引号

start wgnuplot "plot x -persist" 
等等

到目前为止,唯一有效的方法是基本的

start gnuplot
这确实启动了gnuplot。但是我不知道如何添加下一个命令。一旦我有了一个工作的命令行输入,我相信我只需要将它塞进调用系统参数中,就可以让我的Fortran程序完成所有的工作

我只能在类似UNIX的机器上找到如何实现这一点的说明,但在Windows上找不到。 任何帮助都将不胜感激


背景信息:Windows 8,Code::Blocks,gnuplot 5.0 patchlevel 1

您需要使用命名管道,这在C和unix中非常容易:

看看这个答案:

在Fortran和UNIX中,可以使用shell
mkfifo
命令:

谢谢你的回答,不过我已经查过这个问题了,而且问题相当复杂;我似乎无法用Fortran实现它。假设不涉及编码,那么是否有一种方法可以简单地从命令行执行,比如“启动wgnuplot并执行这个和那个”?最好的方法是使用Fortran编写一个包含所有gnuplot命令的文件
file.gp
,然后使用
调用系统(“wgnuplot-p file.gp”)
只有在需要区分版本时才使用标记并添加版本标记(此处并非如此)。您可以使用选项
-e
运行简单指令,如
gnuplot-p-e“plot x”
。由于您使用的是gnuplot 5.0,我建议您在脚本中使用选项
-c
(请参阅,尽管我不知道它是否适用于windows)