-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Command line arguments zh TW
ASF支援一些能夠影響程式執行的命令列引數。 進階使用者可以使用這些引數,來定義程式的執行方式。 相較於使用ASF.json
設定檔的預設方式,命令列引數可用於核心初始化(例如--path
)、平台特定設定(例如--system-required
)或敏感性資料(例如--cryptkey
)。
使用方法取決於您的作業系統以及ASF的版本。
Generic版本:
dotnet ArchiSteamFarm.dll --引數 --另一個引數
Windows:
.\ArchiSteamFarm.exe --引數 --另一個引數
Linux/macOS:
./ArchiSteamFarm --引數 --另一個引數
命令列引數也可用於通用輔助腳本中,例如ArchiSteamFarm.cmd
或ArchiSteamFarm.sh
。 除此之外,如我們的管理及Docker章節中所述,您也可使用ASF_ARGS
環境屬性。
若您的引數中存在空格,別忘了使用引號將其括住。 兩個錯誤的範例:
./ArchiSteamFarm --path /home/archi/My Downloads/ASF # 這是錯的!
./ArchiSteamFarm --path=/home/archi/My Downloads/ASF # 這是錯的!
下面兩個才是正確的:
./ArchiSteamFarm --path "/home/archi/My Downloads/ASF" # 這樣才正確
./ArchiSteamFarm "--path=/home/archi/My Downloads/ASF" # 這樣才正確
--cryptkey<key>
或--cryptkey=<key>
⸺將以自訂金鑰<key>
啟動ASF。 此選項將會影響安全性,並使ASF使用您的自訂金鑰<key>
,而不是程式中硬編碼的預設值。 因為此屬性會影響預設加密鍵(用於加密)及鹽(用於雜湊),請注意使用此金鑰加密/雜湊出的一切,ASF在每次執行時都需要給入相同的值。
<key>
不要求長度或字元,但出於安全原因,我們建議選擇足夠長的通行片語,例如隨機的32個字元,在Linux上使用tr -dc A-Za-z0-9 < /dev/urandom | head -c 32; echo
命令可以獲得。
需要再提一點,還有另外兩種方法可以提供此詳細資料:--cryptkey-file
與--input-cryptkey
。
由於此屬性的性質,它還能透過宣告ASF_CRYPTKEY
環境變數來設定cryptkey,這更適合希望在程序引數中,不包含敏感資訊的使用者。
--cryptkey-file<path>
或--cryptkey-file=<path>
⸺將使用從<path>
檔案中讀取的自訂加密金鑰<path>
啟動ASF。 這與上述說明的--cryptkey<key>
的目的相同。但機制不同,因為此屬性是從<path>
讀取<key>
。 If you're using this together with --path
, consider the fact that relative path will be different depending on the order of arguments, i.e. whether you switch --path
before or after --cryptkey-file
.
由於此屬性的性質,它還能透過宣告ASF_CRYPTKEY_FILE
環境變數來設定cryptkey檔案,這更適合希望在程序引數中,不包含敏感資訊的使用者。
--ignore-unsupported-environment
⸺使ASF忽略在不支援環境中執行的各種問題。而在原本的情形下,會顯示程式出錯並強制退出。 不支援包含例如在linux-x64
上執行適用於win-x64
版本的組建等的情形。 雖然此旗標使ASF能夠嘗試在這些情境中執行,但請注意,我們不正式支援此行為。若您強制ASF這樣做,後果自負。 請格外注意,所有不受支援的環境皆能被修正。 我們強烈建議從根本上修正問題,而非去使用這個引數。
--input-cryptkey
⸺使ASF在啟動過程詢問--cryptkey
。 若您不希望在任何地方儲存cryptkey,例如環境變數或檔案中,而要在每次ASF執行時手動輸入,則可以使用此選項。
--minimized
⸺使ASF在啟動後立刻最小化控制台視窗。 主要是在自動啟動的情境中非常好用,但仍可用於其他地方。 此選項需要正確的環境支援⸺可能無法於所有情境中正常運作。
--network-group <group>
或--network-group=<group>
⸺使ASF使用<group>
值的自訂網路群組來初始化其限制器。 這個選項會影響執行多個實例的ASF,使用此選項指定的實例只會與相同網路群組的實例相互分享資訊,而與其他實例獨立。 這個選項會影響執行多個實例的ASF,使用此選項指定的實例只會與相同網路群組的實例相互分享資訊,而與其他實例獨立。 請注意,在使用自訂網路群組時,這是本機電腦中的唯一識別碼,ASF將不考慮任何其他細節。例如WebProxy
的值,您可以使用不同的WebProxy
值來執行兩個實例,但它們仍會互相影響。
由於此屬性的性質,它還能透過宣告ASF_NETWORK_GROUP
環境變數來設定其值,這更適合希望在程序引數中,不包含敏感資訊的使用者。
--no-config-migrate
⸺在預設情形下,ASF會自動將您的設定檔遷移成最新的語法。 遷移包含:將廢止的屬性轉換成最新的屬性,刪除值為預設的屬性(因為它們沒有意義),以及清理檔案內容(修正縮排等)。 這通常是個好方法,但您可能會遇到特殊情形,以至於希望ASF不會去自動覆蓋設定檔。 舉例來說,您可能想要對設定檔chmod 400
(僅擁有者可讀取),或使用chattr +i
禁止任何人寫入,來作為安全措施。 一般而言,我們建議保留啟用設定遷移,但如果您有特定的理由停用它,並希望ASF不遷移設定,您可以使用此開關來達成。 但請注意,為ASF提供正確的設定,現在已成為了您自己的新責任,特別是有關未來版本的功能棄用及重構。
--no-config-watch
⸺在預設情形下,ASF會在您的config
資料夾中設定FileSystemWatcher
,以監聽更動檔案的事件 ,因此才能夠動態適應這些改動。 舉例來說,在刪除設定檔後停止Bot,修改設定後重新啟動Bot,或在您將序號加入至config資料夾後,載入至背景序號啟動器中。 這個開關允許您停用這個行為,使ASF完全忽略config
資料夾中的任何更改,您需要在適合的時機手動執行相關操作(通常是重新啟動程序)。 我們建議保持啟用config事件監聽,但如果您有特殊原因停用它,並希望ASF不這樣做,就可以使用此開關來達成。
--no-restart
⸺這個開關主要由Docker容器所使用,它會強制將AutoRestart
設定成false
。 除非您有特殊需求,否則您應該直接在設定中設定AutoRestart
屬性。 這個開關使Docker腳本不需要修改您的全域設定,來適應它的環境。 當然,如果是在腳本中執行ASF,您也可以使用此開關(否則您最好使用全域設定屬性)。
--no-steam-parental-generation
⸺在預設情形下,ASF會自動嘗試生成Steam家長監護PIN碼,如SteamParentalCode
設定屬性中所述。 但由於這可能需要過多的作業系統資源,因此這個開關使您能夠停用此行為,這將使ASF跳過自動生成,並直接向使用者詢問PIN碼,與一般情形下的自動生成失敗時相同。 一般而言,我們建議保留啟用生成,除非您有特定的理由停用它,並希望ASF不生成代碼,您可以使用此開關來達成。
--path <path>
或--path=<path>
⸺在預設情形下,ASF總是會在啟動後,使用程式本身所在的資料夾。 透過指定此引數,ASF會在初始化後使用指定的資料夾,讓您能為不同的設定(包含config
、logs
、plugins
及www
資料夾,與NLog.config
檔案)使用不同的應用程式檔案,而不用複製ASF至不同檔案的資料夾中。 若您想將二進制檔案和實際使用的設定檔分開,這可能會非常有用。就像是Linux的封裝機制一樣:這樣您就可以在多個設定檔間,共用一個(最新的)二進制檔案。 這個路徑既可以是依據ASF二進制檔案所在位置的相對路徑,亦可以是絕對路徑。 請注意,這個指令會指向新的「ASF主資料夾」:與原本的ASF具有相同的資料夾結構,其中包含config
資料夾,請參閱下面的說明範例。
由於此屬性的性質,它還能透過宣告ASF_PATH
環境變數來設定路徑,這更適合希望在程序引數中,不包含敏感資訊的使用者。
如果您考慮使用此命令列引數來執行多個ASF實例,我們建議您閱讀我們的相容性頁面。
範例:
dotnet /opt/ASF/ArchiSteamFarm.dll --path /opt/TargetDirectory # 使用絕對路徑
dotnet /opt/ASF/ArchiSteamFarm.dll --path ../TargetDirectory # 或使用相對路徑
ASF_PATH=/opt/TargetDirectory dotnet /opt/ASF/ArchiSteamFarm.dll # 或使用環境變數
├── /opt
│ ├── ASF
│ │ ├── ArchiSteamFarm.dll
│ │ └── ...
│ └── TargetDirectory
│ ├── config
│ ├── logs(自動產生)
│ ├── plugins(選擇性)
│ ├── www(選擇性)
│ ├── log.txt(自動產生)
│ └── NLog.config(選擇性)
└── ...
--service
⸺這個開關主要由systemd
服務所使用,它會強制將Headless
設定成true
。 除非您有特殊需求,否則您應該直接在設定中設定Headless
屬性。 這個開關使systemd
服務不需要修改您的全域設定,來適應它的環境。 當然,如果您有類似需求,您也可以使用此開關(否則您最好使用全域設定屬性)。
--system-required
⸺使用這個開關,將使ASF嘗試通知作業系統,表明本程序需要在系統執行期間,保持啟動與正常執行狀態。 目前這個開關只對Windows設備有效,只要程序正在執行,它就會阻止您的系統進入睡眠模式。 This can be proven especially useful when farming on your PC or laptop during night, as ASF will be able to keep your system awake while it's running.