INF UpdateInis 指示詞
UpdateInis 指示詞會參考一或多個具名區段,指定要從中讀取特定區段或行並套用至目標計算機上相同名稱的現有 INI 檔案的 INI 檔案。 您可以選擇性地在 update-ini-section 中指定來自 和 的逐行修改這類 INI 檔案。
[DDInstall] |
[DDInstall.CoInstallers] |
[ClassInstall32] |
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows)
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows)
UpdateInis=update-ini-section[,update-ini-section]...
由於 INI 檔案缺少 INI 檔案,因此在 Windows 上安裝的 INF 檔案中幾乎從未指定這個指示詞。 不過,UpdateInis 指示詞在正式語法語句中顯示的任一節中,以及 AddInterface 指示詞所參考的 INF 寫入器定義區段,或是在 InterfaceInstall32 區段中參考的區段中有效。
UpdateInis 指示詞所參考的每個具名區段都有下列形式:
[update-ini-section]
ini-file,ini-section[,old-ini-entry][,new-ini-entry][,flags]
...
update-ini-section 可以有任何 INF 寫入器決定的項目數目,每個專案位於個別行上。
項目
ini-file
指定要在目標電腦上更新之 INI 檔案的來源媒體名稱,並隱含地指定要更新之 INI 檔案的名稱。 此值可以表示為檔名,或以 INF 檔案之 Strings 區段中定義的 %strkey% 令牌表示。
ini-section
指定指定 INI 檔案內的區段名稱。 如果指定了接下來兩個值,本節會包含要變更的專案。 如果省略 old-ini-entry 但提供 new-ini-entry,則會在讀取此區段時加入新的專案。
old-ini-entry
這個選擇性值會指定指定 ini 區段中項目的名稱,通常以下列形式表示:
"key=value"
索引鍵和值的或兩者都可以以 INF 檔案之 Strings 區段中定義的 %strkey% 標記表示。 星號 \ 可以指定為索引鍵或值的通配符。
new-ini-entry
這個選擇性值會指定變更指定的 old-ini-entry 或新增新專案。 這個值可以用與 old-ini-entry 相同的方式表示。
flags
這個選擇性值會控制指定 old-ini-entry 和/或 new-ini-entry 的解譯。 旗標專案可以是下列其中一個數值:
值 | 意義 |
---|---|
0 | 如果省略旗標專案,這是預設值。 如果 INI 檔案中有指定的 old-ini 專案 索引鍵,請將該 key=value 取代為指定的 new-ini-entry。 只有 INI 檔案中的索引鍵必須相符。 會忽略每個這類索引鍵的對應值。 若要無條件地將 new-ini-entry 新增至目的地 INI 檔案,請省略 INF update-ini 區段中專案的 old-ini 專案值。 若要從目的地 INI 檔案無條件刪除 old-ini-entry ,請省略 new-ini-entry 值。 |
1 | 如果指定的 old-ini-entry (key=value) 存在於 INI 檔案中,請在具有指定 new-ini-entry 的目的地 INI 檔案中取代它。 指定 old-ini-entry 的索引鍵和值都必須符合 INI 檔案中的索引鍵和值,才能進行這類取代,而不只是其索引鍵,如同上述旗標值。 |
2 | 如果在目的地 INI 檔案中找不到為 old-ini 專案指定的索引鍵,則不會執行任何動作。 否則,所做的變更取決於 INI 檔案中針對 old-ini-entry 和 new-ini-entry 指定索引鍵中找到的相符專案,如下所示: (1) 如果 old-ini 專案索引鍵存在於 INI 檔案中,但 new-ini-entry 的索引鍵也是如此,請將 old-ini-entry 取代為目的地 INI 檔案中的 new-ini-entry,然後從該 INI 檔案中移除多餘的 new-ini-entry。 (2) 如果 old-ini-entry 的索引鍵存在於 INI 檔案中,但 new-ini-entry 的索引鍵不存在,請將 old-ini-entry 機碼取代為目的地 INI 檔案中 new-ini-entry 的索引鍵,但保留 old-ini 專案的值不變。 |
3 | 如果在 INI 檔案中找不到為 old-ini 專案指定的索引鍵和值,則不會執行任何動作。 否則,所做的變更取決於 INI 檔案中找到的相符專案,以取得 old-ini-entry 和 new-ini-entry 的索引鍵和值,如下所示: (1) 如果 old-ini-entry 的 key=value 存在於 INI 檔案中,但 new-ini-entry 的 key=value 也是如此,請將 old-ini-entry 取代為目的地 INI 檔案中的 new-ini-entry,然後從該 INI 檔案中移除多餘的 new-ini-entry。 (2) 如果 old-ini-entry 的 key=value 存在於 INI 檔案中,但 new-ini-entry 不存在,請將 old-ini-entry 取代為 destination INI 檔案中的 new-ini-entry,但保留 old-ini-entry 的值不變。 |
備註
指定的 update-ini-section 名稱在 INF 檔案中必須是唯一的,而且必須遵循定義區段名稱的一般規則。 如需這些規則的詳細資訊,請參閱 INF 檔案的一般語法規則。
INF 會以下列其中一種方式,在散發媒體上提供指定 ini-file 的完整路徑:
在 IHV/OEM 提供的 INF 檔案中,使用此 INF 的 SourceDisksNames 和 SourceDisksFiles 區段,明確指定散發媒體上不在根目錄(或目錄)中之每個具名來源檔案的完整路徑。
在系統提供的 INF 檔案中,藉由提供一或多個額外的 INF 檔案,在 INF 檔案的 Version 區段中的 LayoutFile 項目中識別。
在 old-ini-entry 或 new-ini-entry 中指定的任何檔名,都應該指定包含該檔案的目的地目錄。 update-ini-section 項目中檔名的這類目的地目錄路徑必須指定為 dirid。 如需可能的 dirid 值清單,請參閱 使用 Dirids。