대체 된 변수를 줄 바꿈에 추가하지 않고 Powershell에서 올바르게 문자열을 바꾸는 방법은 무엇입니까?

노력하고있어

저는 powershell / 프로그래밍에 익숙하지 않으니 참아주세요. 나머지 경로없이 새 줄에 새 이름이 바뀐 경로를 추가하는이 버그가 있습니다. 콘솔 출력 :

/content/pizza/en/ingredients/
helloworld/menu-eng.html

내가 원하는 것 :

/content/pizza/en/ingredients/helloworld/menu-eng.html

아래 코드가해야 할 일은 묶음 경로의 이름을 바꾸는 것입니다. 현재 testName은 하드 코딩되어 있지만 제대로 작동하면 동적이됩니다.

내 코드 :

$testName = "helloworld"
$text = (Get-Content W:\test\Rename\rename.csv) | Out-String
$listOfUri = Import-Csv W:\test\Rename\rename.csv

foreach ($element in $listOfUri) {
    if ($element -match "menu-eng.html") {    
        $elementString = $element.'ColumnTitle' | Out-String
        $elementString = $elementString.Replace('menu-eng.html', '')
        $varPath1 = $elementString

        $elementString = $elementString.Insert('', 'http://www.pizza.com')
        $elementName = ([System.Uri]$elementString).Segments[-1]
        $elementString = $elementString.Replace($elementName, '')
        $elementString = $elementString.Replace('http://www.pizza.com', '')
        $varPath2 = $elementString.Insert($elementString.Length, $testName + '/')

        $text = $text.Replace($varPath1.Trim(), $varPath2)
    }
}
$text 
TessellatingHeckler

.csv파일이 다음과 같다고 가정합니다 .

ColumnTitle,Idk
/content/pizza/en/ingredients/SPAM/menu-eng.html,Stuff

그때:

$testName = 'helloworld'
foreach ($row in Import-CSV d:\rename.csv) {
    $bit = $row.'ColumnTitle'.Split('/')[-2]
    $row.'ColumnTitle'.replace($bit, $testName)
}

나머지 코드가 무엇인지, 특히 이전에 언급 한 내용이 무엇인지 잘 모르겠습니다.

$text = (Get-Content W:\test\Rename\rename.csv) | Out-String

하고있다 $text/array/헤더를 포함하여 파일의 모든 라인의. .Replace()PowerShell에서 계속 사용할 수 있지만 모든 줄에서 교체를 수행합니다. 나는 그것이 당신이 얻는 출력을 어떻게 제공하는지 잘 모르겠지만 입력 파일의 모든 줄에 여러 줄을 줄 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관