서버 이름 목록을 수집 한 다음 각 서버 이름을 반복하고 두 번째를 디렉터리의 최신 폴더로 가져 오는 스크립트를 작성하려고합니다. , 이름을 바꾸고 다른 서버로 복사합니다. 이 명령을 하나의 명령으로 모두 처리하는 데 어려움이 있습니다. 그리고이를 분할하고 올바르게 작동시키는 가장 좋은 방법이 무엇인지 잘 모릅니다. 다른 것들을 시도 할 때 에러가 발생합니다. 주요한 것은 "rename-item : 매개 변수"NewName "을 인수가 스크립트 블록으로 지정되고 입력이 없으므로 평가할 수 없습니다"입니다.Powershell : Get-ChildItem - 이름 바꾸기 - 항목 및 복사 항목으로 파이핑
$serverNames = Get-Content -Path "C:\servers.txt"
foreach ($serverName in $ServerNames) {
$reportServer = "a56741035"
Get-ChildItem "\\$($serverName)\d$\mposlogs\device" | where { $_.PSIsContainer } | Sort CreationTime -Descending | Select -Skip 1 | Select -First 1 | Rename-Item -NewName { "$serverName" + "_" + $_.Name } | Copy-Item $_.FullName -Destination "\\$($reportServer)\c$\temp\mpos\logs" }
또 다른입니다 "null의 때문에 인수를 바인딩 할 수 없습니다하는 '경로'매개 변수를"다음은이 오류를 발생시키는 코드이다. 다음은이 오류의 원인이되는 코드입니다.
$serverNames = Get-Content -Path "C:\servers.txt"
foreach ($serverName in $ServerNames) {
$reportServer = "a56741035"
Get-ChildItem "\\$($serverName)\d$\mposlogs\device" | where { $_.PSIsContainer } | Sort CreationTime -Descending | Select -Skip 1 | Select -First 1 | ForEach-Object { Rename-Item -NewName { "$serverName" + "_" + $_.Name } | Copy-Item $_.FullName -Destination "\\$($reportServer)\c$\temp\mpos\logs" } }
나는 아주 가깝고 그냥 보지 못합니다. 어떤 도움이라도 대단히 감사합니다. 정말 고마워요. 좋은 하루 되세요.
이Get-Child-Item "\\$serverName\d$\mposlogs\device" | where {$_.PSIsContainer} | Sort CreationTime -Descending | Select -Skip 1 | Select -First 1 | ForEach-Object { Rename-Item -Path $_.FullName -NewName ("$serverName" + "" + $.Name) ; Copy-Item ("$serverName" + "" + $.Name) -Destination "\\$reportServer\c$\temp\mpos\logs" }
나는 이것이 그것을 못 박는 것에 아주 가깝다라고 생각한다! !! 이 작업을 수행하지 않는 유일한 부분은 파일 복사입니다. 오류가 발생하지 않습니다 ... 파일을 복사하지 않습니다. :) 어떤 아이디어? 고맙습니다! – LilithGoddess
오 와우, 파이프 라인이 어떻게 설정되었는지는 알지 못했습니다. 이름 바꾸기 항목이 객체를 '복사 항목'으로 전달하지 않는 경우, 두 가지 방법을 극복 할 수 있습니다. -PassThru'를'Rename-Item'으로 바꾸거나'| '를';'로 바꾸면 파이프 라인 요소가 아닌 foreach에서 실행될 두 번째 명령으로 복사본을 처리 할 것입니다 –
너무 가까이에 !! ! 이제 파일의 이름을 바꾸고 있지만 이름을 바꾸기 전에 파일을 복사하려고 시도한 것 같습니다. (존재하지 않기 때문에 경로 xxxxx를 찾을 수 없습니다.) - 그리고 폴더를 보면 이름이 바뀌었지만 이름이 바뀌기 전에 오류가 실제로 폴더를 불러옵니다. – LilithGoddess