簡體   English   中英

如何使用 PowerShell 從 NuGet package 文件的名稱中提取版本?

[英]How to extract the version from the name of a NuGet package file using PowerShell?

我有一個文件,其中包含 nuget package 的名稱,例如rmp2.<version>.nupkg 我想單獨處理<version>部分。 我已經嘗試了很多東西。 一個這樣的片段如下:

Get-Content version.txt | ForEach-Object { $_.split("nupkg")[1]} | cut -f 2,3 -d 2

它不工作。

如果由於版本末尾的點而無法正常工作,請嘗試以下操作:

$version = Get-Content version.txt | ForEach-Object { $_.split("nupkg")[1]}

$version.Substring(0,$version.Length-1)

或嘗試使用 -split 而不是.split

(((Get-Content version.txt) -split('.nupkg')) -split('rmp2.'))[1]

使用以下正則表達式獲取各種其他 package id 和版本。 例如

  • 我的.package.net.10.0.0.nupkg
  • 我的.package.net.10.0.nupkg
  • my.package.editor.csharp.0.1-build000055.nupkg
  • my.package.4.0.0.editor.csharp.0.1-build000055.nupkg
  • my.package.4.0.0.editor.csharp.0.1.0-build000055.nupkg
if ($file.Name -match '(?<=(?<id>.+))\.(?<version>((\d+\.\d+(\.\d+)?))(?<suffix>(-.*)?))\.nupkg')
{
    $packageId = $Matches.id
    $packageVersion = $Matches.version
    # do your thing
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM