批处理方法2:命令文件

使用命令文件进行批处理

在命令提示符中输入FME,你将会看到FME的一个命令选项,如下:

fme COMMAND_FILE <commandFile>

命令文件是一个包含FME相关命令列表的文件,每行一个命令。符号(\)可用于将命令拆分到文件中的多个行上。可以以这种方式处理的命令包括:映射文件生成、运行工作区或映射文件,甚至执行另一个批处理文件。


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

c:\dxf2dgn.fmw --SourceDataset c:\in1.dxf --DestDataset c:\out1.dgnLOG_FILENAME c:\fme.log

请注意,您不需要在命令前面加上“fme”前缀,因为当您给出命令”fme COMMAND_FILE <commandFile>”时,FME已经启动了。


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


因此,将多个命令插入到命令文件中会为您提供一个“批处理”文件,该文件可以使用上面的fme命令执行,也可以通过将该命令本身放入*.bat文件中来执行。

多个数据集

多个数据集命令让每个读模块读取多个数据集,例如:

fme.exe c:\temp\command.fmw --SourceDataset_ACAD """"C:\FMEData\Data\Water\distribution_L25.dwg" "C:\FMEData\Data\Water\distribution_L26.dwg"""" --DestDataset_DGNV8 c:\temp\output.dgn


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

最终,FME在其映射文件中需要看到类似下面的内容:

""C:\dale\data\testSuper\fc.shp" "C:\dale\data\testSuper\mplan.shp""

即在整个列表的开始和结尾处使用双引号,每个内部文件名的末尾和开头也都设置一个引号。
为了获得所需的结果,您需要在映射文件中最终想要内容的每个引号前面放置一个“\”,然后在所有这些的开头和结尾处放置一个”号。因此,您需要使用的语法将是:

fme.exe c:\temp\command.fmw --SourceDataset_ACAD "\"\"C:\FMEData\Data\Water\distribution_L25.dwg\" \"C:\FMEData\Data\Water\distribution_L26.dwg\"\"" --DestDataset_DGNV8 c:\temp\output.dgn


如果您的数据集没有空格字符,并且您想要更快的解决方案,那么FME只需要看到:

"C:\dale\data\testSuper\fc.shp C:\dale\data\testSuper\mplan.shp"


这意味着在命令文件中具有:

"\"C:\dale\data\testSuper\fc.shp C:\dale\data\testSuper\mplan.shp\""

Python版本

一个fme.exe的实例只能加载一个Python解释器。这意味着为了使命令文件执行命令文件中列出的所有工作空间,在“工作空间参数”>”高级“>”Python解释器”中设置的“工作空间Python解释器”值需要兼容所有的工作空间(例如,3.x+)。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值