1. 程式人生 > >批處理(二):命令列檔案

批處理(二):命令列檔案

 

原文連結:

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

 

問題

批處理的方法二是什麼:命令列檔案?

回答

使用命令列檔案的批處理

在命令列選項下輸入FME,你將看到FME的命令列選項之一是

命令列檔案是包含FME相關命令列表的一個檔案,每行一個命令。“\”可用於在檔案中的多個物理行上拆分命令。可以以這種方式處理的命令有:生成對映檔案,執行一個工作空間或對映檔案,或者執行另外一個批處理檔案。

 

例如,命令列檔案可能包含如下的行:

 

注意你不需要在命令列新增‘fme’的字首,因為當你給出命令“fme COMMAND_FILE <commandFile>‿ FME已經啟動。

 

關鍵字LOG_FILENAME是可選項,允許寫入日誌檔案 ,因此推薦使用。

 

因此,將幾個命令插入命令檔案會為您提供一個“batch”檔案,該檔案可以使用上面的fme命令執行,或者將該命令本身放入* .bat檔案中。


多個數據集

多個數據集命令,每個讀模組超過一個數據集。例如:

雖然這在普通命令列上可執行,但它會在命令檔案中失敗,因為解析器會誤解命令列上的專案數。

最終FME在其對映檔案中,看起來如下所示:

... 即整個列表開頭和結尾為雙引號組,每個內部檔名的結尾和開頭只有一個引號。

 

為了得到期望的結果,你需要在對映檔案中的每個引號前放一個 \ ,然後在所有的開頭和結尾放一個。因此你需要使用的語法為:

 

這個方法是可靠的,但是如果你的資料集沒有空格字元,且你需要更快的解決方案,FME只需要看到:

 

這意味著命令檔案中有:

Python 版本

一個fme.exe例項只能載入一個Python解譯器。這意味著為了讓命令檔案執行命令檔案中列出的所有工作空間,在工作空間

Workspace Parameters > Advanced > Python Interpreter 中設定的Python解譯器值要對所有工作空間相容(例如:所有3.x+)。

如果命令檔案執行時檢測到相容不匹配,則轉換失敗並提示錯誤資訊,且命令檔案的執行將在該工作空間結束。