我正在尝试从Windows命令行启动IDL程序。 假设我有以下程序:
PRO hello
print, "Hello, I am a IDL script!"
a=bytarr(100,200)
outname='g:\testimage.tif'
WRITE_TIFF, outname, a
END
我想从命令行使用IDL -e .RUN执行此程序,如下所示:
C:\Users\lein_pa>idl -e ".RUN G:/05_Software/01_IDL/IDLWorkspace/Default/hello.pro"
IDL Version 8.2, Microsoft Windows (Win32 x86_64 m64). (c) 2012, Exelis Visual Information Solutions, Inc.
Installation number: xxxxx.
Licensed for use by: xxx
% Compiled module:HELLO.
C:\Users\lein_pa>
正如你所看到的,HELLO.pro将被编译,但没有消息"你好,我是一个IDL脚本!"出现在shell上,并且testimage.tif也没有写入磁盘。当我从IDL IDE启动这个程序时,一切正常。
可以请别人帮帮我吗?我做错了什么?答案 0 :(得分:1)
您可以使用相同的名称保留文件,但可以通过注释PRO hello
和END
将其更改为类似批处理的文件,因为例程中的所有内容都可以轻松地从命令行。
然后开始一切,尝试:
C:\Users\lein_pa>idl -e G:/05_Software/01_IDL/IDLWorkspace/Default/hello.pro
在基于unix的系统上,这将启动IDL并立即运行批处理文件hello.pro。如果您需要基于Windows的计算机的双引号,请相应地添加它们。
请记住,如果您使此例程更复杂但将其保存为批处理文件,那么请注意循环,因为您需要在行的末尾使用$
和& $
将它们包含在循环中。我很确定可以在启动时运行实际的程序/功能,但如果有必要,在启动后输入功能名称也很容易。通常,人们希望使用启动批处理例程来设置您希望在IDL中使用或常用的个人首选项/默认值。