批处理(二):命令行文件

 

原文链接:

https://knowledge.safe.com/articles/1381/batch-processing-method-2-command-file-1.html?smartspace=chaining-workspaces

 

问题

批处理的方法二是什么:命令行文件?

回答

使用命令行文件的批处理

在命令行选项下输入FME,你将看到FME的命令行选项之一是

命令行文件是包含FME相关命令列表的一个文件,每行一个命令。“\”可用于在文件中的多个物理行上拆分命令。可以以这种方式处理的命令有:生成映射文件,运行一个工作空间或映射文件,或者执行另外一个批处理文件。

 

例如,命令行文件可能包含如下的行:

 

注意你不需要在命令行添加‘fme’的前缀,因为当你给出命令“fme COMMAND_FILE FME已经启动。

 

关键字LOG_FILENAME是可选项,允许写入日志文件 ,因此推荐使用。

 

因此,将几个命令插入命令文件会为您提供一个“batch”文件,该文件可以使用上面的fme命令执行,或者将该命令本身放入* .bat文件中。


多个数据集

多个数据集命令,每个读模块超过一个数据集。例如:

虽然这在普通命令行上可运行,但它会在命令文件中失败,因为解析器会误解命令行上的项目数。

最终FME在其映射文件中,看起来如下所示:

... 即整个列表开头和结尾为双引号组,每个内部文件名的结尾和开头只有一个引号。

 

为了得到期望的结果,你需要在映射文件中的每个引号前放一个 \ ,然后在所有的开头和结尾放一个。因此你需要使用的语法为:

 

这个方法是可靠的,但是如果你的数据集没有空格字符,且你需要更快的解决方案,FME只需要看到:

 

这意味着命令文件中有:

Python 版本

一个fme.exe实例只能加载一个Python解译器。这意味着为了让命令文件执行命令文件中列出的所有工作空间,在工作空间Workspace Parameters > Advanced > Python Interpreter 中设置的Python解译器值要对所有工作空间兼容(例如:所有3.x+)。

如果命令文件运行时检测到兼容不匹配,则转换失败并提示错误信息,且命令文件的运行将在该工作空间结束。

 

 

 

 

你可能感兴趣的:(默认分类)