分享方式:


WriteLinesToFile 工作

將所指定項目的路徑寫入至指定的文字檔。

工作參數

下表說明 WriteLinestoFile 工作的參數。

參數 描述
File 必要的 ITaskItem 參數。

指定要寫入項目的檔案。
Lines 選擇性的 ITaskItem[] 參數。

指定要寫入至檔案的項目。 預設值為空白清單。
Overwrite 選擇性的 Boolean 參數。

如果 true,則工作會覆寫檔案中的任何現有內容。 預設值為 false
Encoding 選擇性的 String 參數。

選取字元編碼 (例如,"Unicode")。 預設值為 UTF-8。 請參閱 Encoding
WriteOnlyWhenDifferent 選擇性的 Boolean 參數。

若為 true,則會先讀取指定的目標檔案 (如果存在),以便與已經寫入的工作進行比較。 如果相同,則不會將檔案寫入到磁碟,而且將會保留時間戳記。 預設值為 false

備註

如果 Overwritetrue,會建立新檔案,並將內容寫入至檔案,然後關閉檔案。 如果檔案已經存在,則會覆寫該檔案。 如果 Overwritefalse,會將內容附加至檔案,如果目標檔案不存在,則會建立該檔案。

除了上述所列的參數,此項工作還會繼承 TaskExtension 類別中的參數,而該類別本身又繼承 Task 類別。 如需這些其他參數的清單及其描述,請參閱 TaskExtension 基底類別

範例

下列範例會使用 WriteLinesToFile 工作將 MyItems 項目集合中的項目路徑寫入至 MyTextFile 項目集合所指定的檔案。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <MyTextFile Include="Items.txt"/>
        <MyItems Include="*.cs"/>
    </ItemGroup>

    <Target Name="WriteToFile">
        <WriteLinesToFile
            File="@(MyTextFile)"
            Lines="@(MyItems)"
            Overwrite="true"
            Encoding="Unicode"/>
    </Target>

</Project>

在此範例中,我們使用內嵌新行字元的屬性來撰寫多行文字檔案。 如果 Lines 中的項目內嵌新行字元,則輸出檔案中將會包含新行。 如此一來,就可以參考多行屬性。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <Target Name="WriteLaunchers" AfterTargets="CopyFilesToOutputDirectory">
      <PropertyGroup>
        <LauncherCmd>
@ECHO OFF
dotnet %~dp0$(AssemblyName).dll %*
        </LauncherCmd>
      </PropertyGroup>

      <WriteLinesToFile
        File="$(OutputPath)$(AssemblyName).cmd"
        Overwrite="true"
        Lines="$(LauncherCmd)" />
  </Target>
</Project>

另請參閱