如何将 .cmd 转换为 PowerShell 脚本?
how convert a .cmd into a PowerShell script?
我有下一个文件(.cmd):
@echo off
setlocal
for /f %%b in (Branches.txt) do (
set branches=%%b
)
call :parse "%branches%"
goto :eos
:parse
set branches=%1
set branches=%branches:"=%
for /f "tokens=1* delims=," %%a IN ("%branches%") DO (
if not "%%a" == "" call :sub %%a
if not "%%b" == "" call :parse "%%b"
)
goto :eos
:sub
echo Starting compilation for branch :[%1]
goto :eos
:eos
endlocal
其中 "Branches.txt" 包含此内容:
branch1,branche2,branche3,...,branchn
脚本抓取 Branches.txt 的最后一行,删除字符串中的所有引号,并以逗号分隔该行。如果至少有一个元素,它会用第一个元素调用 sub,如果该行在拆分时有两个或更多元素,它会在删除第一个元素的情况下重新解析字符串。
我需要此代码,但在 PowerShell .ps1 文件中
我想这就是您要寻找的东西的开始。考虑 txt 文件的以下内容 branches.txt。我引用了最后一行以表明它们已作为流程的一部分被删除。
branch1,branche2,branche3
branch2,branche2,branche3
"branch3","branche2",branche3"
代码段
$path = "c:\temp\braches.txt"
$lastLine = Get-Content -Path $path | Select-Object -Last 1
$lastLine -replace '"' -split "," | ForEach-Object{
Write-Host "Do something with: $_"
}
将产生以下控制台输出。
Do something with: branch3
Do something with: branche2
Do something with: branche3
这将获取文件并将其内容作为字符串数组读取。我们取最后一行并使用 -replace
删除引号。然后使用 -split
我们创建另一个数组。然后可以单独处理该数组的每个元素。
我有下一个文件(.cmd):
@echo off
setlocal
for /f %%b in (Branches.txt) do (
set branches=%%b
)
call :parse "%branches%"
goto :eos
:parse
set branches=%1
set branches=%branches:"=%
for /f "tokens=1* delims=," %%a IN ("%branches%") DO (
if not "%%a" == "" call :sub %%a
if not "%%b" == "" call :parse "%%b"
)
goto :eos
:sub
echo Starting compilation for branch :[%1]
goto :eos
:eos
endlocal
其中 "Branches.txt" 包含此内容:
branch1,branche2,branche3,...,branchn
脚本抓取 Branches.txt 的最后一行,删除字符串中的所有引号,并以逗号分隔该行。如果至少有一个元素,它会用第一个元素调用 sub,如果该行在拆分时有两个或更多元素,它会在删除第一个元素的情况下重新解析字符串。
我需要此代码,但在 PowerShell .ps1 文件中
我想这就是您要寻找的东西的开始。考虑 txt 文件的以下内容 branches.txt。我引用了最后一行以表明它们已作为流程的一部分被删除。
branch1,branche2,branche3
branch2,branche2,branche3
"branch3","branche2",branche3"
代码段
$path = "c:\temp\braches.txt"
$lastLine = Get-Content -Path $path | Select-Object -Last 1
$lastLine -replace '"' -split "," | ForEach-Object{
Write-Host "Do something with: $_"
}
将产生以下控制台输出。
Do something with: branch3
Do something with: branche2
Do something with: branche3
这将获取文件并将其内容作为字符串数组读取。我们取最后一行并使用 -replace
删除引号。然后使用 -split
我们创建另一个数组。然后可以单独处理该数组的每个元素。