약 50 개의 파일에서 100 개가 넘는 자리 표시자를 약간 변경하도록 설계된 스크립트를 설정하려고합니다. 일반적으로 가능한 자리 표시 자 목록과 해당 값이 있습니다. exe.config 파일과 ini 파일이있는 일부 응용 프로그램이 있습니다. 이러한 응용 프로그램은 c : \ programfiles (x86) \ 및 d : \에 저장됩니다. 일반적으로 하나의 경로에서는 작동하지만 두 개에서는 작동하지 않습니다. 두 번 바꾸기 위해 코드를 쉽게 작성할 수는 있지만 많은 코드가 복잡해져 다른 사람들이 읽을 수 없게됩니다.Powershell - 폴더를 여러 위치에 나열하고 해당 위치의 파일을 변경합니다.
ls c:\programfiles(x86) -Recurse | where-object {$_.Extension -eq ".config" -or $_.Extension -eq ".ini"} | %{(gc $PSPath) | %{
$_ -replace "abc", "qwe" `
-replace "lkj", "hgs" `
-replace "hfd", "fgd"
} | sc $_PSPath; Write-Host "Processed: " + $_.Fullname}
나는에 실행 명령 = 경로 2, C $ = $ A + $ B하고는 LS를 받고으로까지 작동하는 것 같다 b를 $ A = 경로 1, $ 넣어 두 경로를 포함하도록 시도했다 두 개의 다른 장소. 그러나 파일이있는 경로를 저장하는 것처럼 보이지 않으므로 현재 스크립트를 실행중인 폴더에서 찾은 파일 이름을 바꾸려고 시도합니다. 따라서 파일이 있어야하는 위치에있을지라도 다른 위치에 있지는 않습니다 ...
그래서 .. 어떻게 Powershell을 통해 2 곳의 다른 위치에 파일을 나열 할 수 있는지 생각해보십시오. 코드를 두 번 가지지 않고도 두 곳에서 동일한 변수를 대체 할 수 있습니까? 변수에 두 번 사용해야 할 코드를 두 번 쓰는 대신에 다시 작성해야한다고 생각했지만 코드를 사용하기 전에 코드를 해결 한 것처럼 보였습니다. 데이터는 첫 번째 부분에서옵니다.
감사합니다. 수요일 제안을 시도해보십시오. 나는 조금만 시작해서 좀 더 확장했습니다. 나는 당신이 얼마나 힘들게 추가 할 수 있는지에 대해 반대 할 것이 없다면 더 나아지는 것이 사실이라고 생각합니다. 나중에 코드를 공부하게 될 것입니다. 대체 수는 약 112입니다. 해시 테이블에서도 읽어야합니다. 일반적으로 약 50 개의 파일과 112 개의 대체 파일이있을 것이며 모든 파일에 포함되는 것은 아닙니다. 잠재력은 50x112이므로 빨리 지키면됩니다. 필자는 각 파일을 대체 할 코드를 작성하기 시작했습니다. 이제는 112 개의 대체 파일 중 하나입니다. – SkyRaider
좋아 :) 트릭을 했어. 모든 것이 마치 내가 원했던 것처럼 효과가있었습니다. 또한 더 많은 위치를 추가하고자 할 경우 더 쉽게 만들 수 있습니다. – SkyRaider