前
期
回
顾
01
在命令提示符中输入FME,你将会看到FME的一个命令选项bat是什么文件,如下:
fme COMMAND_FILE <commandFile>
命令文件是一个包含FME相关命令列表的文件,每行一个命令。符号()可用于将命令拆分到文件中的多个行上。可以以这种方式处理的命令包括:映射文件生成、运行工作区或映射文件,甚至执行另一个批处理文件。
例如,命令文件可能包含如下行:
c:dxf2dgn.fmw --SourceDataset c:in1.dxf --DestDataset c:out1.dgnLOG_FILENAME c:fme.log
请注意,您不需要在命令前面加上“fme”前缀,因为当您给出命令
”fmeCOMMAND_FILE ”时,FME已经启动了。
LOG_FILENAME关键字是可选的,但允许写入日志文件,因此推荐使用。
因此,将多个命令插入到命令文件中会为您提供一个“批处理”文件,该文件可以使用上面的fme命令执行,也可以通过将该命令本身放入*.bat文件中来执行。
多个数据集
多个数据集命令让每个读模块读取多个数据集,例如:
fme.exe c:tempcommand.fmw--SourceDataset_ACAD""""C:FMEDataDataWaterdistribution_L25.dwg" "C:FMEDataDataWaterdistribution_L26.dwg""""--DestDataset_DGNV8 c:tempoutput.dgn
虽然这在普通命令行上可以正常运行,但在命令文件中运行却会失败,因为解析器会错误解析命令行上的项目数。
最终,FME在其映射文件中需要看到类似下面的内容:
""C:daledatatestSuperfc.shp""C:daledatatestSupermplan.shp""
即在整个列表的开始和结尾处使用双引号,每个内部文件名的末尾和开头也都设置一个引号。为了获得所需的结果,您需要在映射文件中最终想要内容的每个引号前面放置一个“”,然后在所有这些的开头和结尾处放置一个”号。因此,您需要使用的语法将是:
fme.exe c:tempcommand.fmw --SourceDataset_ACAD"""C:FMEDataDataWaterdistribution_L25.dwg""C:FMEDataDataWaterdistribution_L26.dwg""" --DestDataset_DGNV8c:tempoutput.dgn
如果您的数据集没有空格字符,并且您想要更快的解决方案,那么FME只需要看到:
"C:daledatatestSuperfc.shp C:daledatatestSupermplan.shp"
这意味着在命令文件中具有:
""C:daledatatestSuperfc.shpC:daledatatestSupermplan.shp""
Python版本
一个fme.exe的实例只能加载一个Python解释器。这意味着为了使命令文件执行命令文件中列出的所有工作空间,在“工作空间参数”>”高级“>”Python解释器”中设置的“工作空间Python解释器”值需要兼容所有的工作空间(例如bat是什么文件,3.x+)。
如果在运行命令文件时检测到兼容性不匹配,则转换将失败并显示错误消息,命令文件的运行将在该工作区结束。
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信: