【问题标题】:Using IDL on Windows command line在 Windows 命令行上使用 IDL
【发布时间】:2018-02-18 00:07:26
【问题描述】:

我正在尝试从 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 脚本!”出现在外壳上,并且 testimage.tif 也没有写入磁盘。当我从 IDL IDE 启动这个程序时,一切正常。

请有人帮助我吗?我做错了什么?

【问题讨论】:

    标签: windows cmd idl-programming-language


    【解决方案1】:

    您可以使用相同的名称保留文件,但通过注释掉 PRO helloEND 将其更改为类似批处理的文件,因为您的例程中的所有内容都可以从命令行轻松运行。

    然后开始一切,尝试:

    C:\Users\lein_pa>idl -e G:/05_Software/01_IDL/IDLWorkspace/Default/hello.pro
    

    在基于 unix 的系统上,这将启动 IDL 并立即运行批处理文件 hello.pro。如果您需要基于 Windows 的机器的双引号,请相应地添加它们。

    请记住,如果您使此例程更复杂但将其保留为批处理文件,请注意循环,因为您需要在行尾使用 $& $ 将它们包含在循环中.我很确定可以在启动时运行实际的程序/功能,但如果有必要,在启动后输入函数名称同样容易。通常,人们希望使用启动批处理例程来设置您希望在 IDL 中使用或常用的个人偏好/默认值。

    【讨论】:

    • 这是个好主意,非常感谢。但是 hello.pro 当然只是一个简单的示例程序。我想从命令行调用已经存在的非常复杂的程序,它们的结构或编码无法更改。
    • 您的意思是希望在首次启动 IDL 时运行多个例程,还是希望能够在 IDL 之外的命令行上运行 IDL 例程?前者非常简单,只需从简单的 bash 例程(如 hello.pro)中调用它们,甚至在 IDL 中从命令行调用它们。后者是可能的,但可能有点棘手。您是否查看过:Command-line Options for IDL StartupExecuting SAVE Files 以查看这些选项是否有效?
    • 感谢您的链接 - 他们帮助我找出错误!我意识到问题是 idl 调用中的一个小差异。基于 unix 的系统使用 idl,Windows 虚拟机使用 idlrt 从命令行运行程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 2016-09-03
    • 2016-12-13
    • 2018-04-07
    • 2020-08-10
    • 2021-05-17
    • 2012-03-21
    相关资源
    最近更新 更多