저는 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
.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] 삭제
몇 마디 만하겠습니다