this, this 및 this에서 팁을 사용하여 마침내 일련의 파일 백업 스크립트를 사용할 수있게되었습니다. 그러나 내가 해결할 수 없었던 작은 것이 하나 있습니다. 나는이 스크립트를 실행할 때 런타임 오류가 있지만,이 PowerShell 스크립트가 예기치 않은 파일 경로를 구성하는 이유는 무엇입니까?
$originalPath = "\\Server\Path\_testData\"
$backupPath = "\\Server\Path\_backup\"
#
function supportBackup
{
"$($originalPath) copying DOC XLS PPT JPG GIF PDF WAV AVI to $($backupPath)"
Get-ChildItem $originalPath\* -Include *.doc*, *.xls*, *.ppt*, *.jpg, *.gif, *.pdf, *.wav, *.avi | `
foreach {
$targetFile = $backupPath + $_.FullName.SubString($originalPath.Length);
New-Item -ItemType File -Path $targetFile -Force;
Copy-Item $_.FullName -destination $targetFile
}
"Support File Backup Completed"
}
supportBackup
원래 파일 경로는 파일을 대상 디렉토리로 덤프하지 않고 됩니다.
내가 원하는 것은 :
\\Server\Path\_backup\files-from-testData-directory
내가 무엇을 얻을 :
\\Server\Path\_backup\_testData\files-from-testData-directory
나는 문제가 밀접하게 this question에 (동일하지 않은 경우)와 관련이 알고 있지만, 그것을 공부하고 일부를 적용하려고 후 그곳의 지혜에 대해 변수 들인 $_.Name
의 다양한 반복을 사용하여, 나는 내가 생각한만큼 좋은 이해를하지 못한다는 것을 깨닫습니다. 나는 목적지 경로와 파일 이름이 주어진 변수로 어떻게 생성되는지와 원하는 결과를 얻기 위해 어떤 대체 변수 (또는 코드)를 사용해야하는지 설명 할 누군가가 필요하다. 나를 위해 클릭하지 않는 무언가가 있습니다. 이해하는 데 도움이 필요합니다.
파이프 기호가있는 줄을 끝내면 백틱이 필요하지 않습니다. PowerShell은 자동으로 다음 줄을 파이프 라인을 계속 해석합니다. 그러나 필자는 개인적으로 파이프 기호가있는 줄을 시작하는 것이 더 명확하므로 멀티 라인 파이프에서 무엇이 파이프되어 있는지를 명확하게 알 수 있습니다. 이 경우 줄 바꿈을 벗어나기 위해 앞 줄 끝 부분에 backtick이 필요합니다. 그래서 저는 7 행을 역 따옴표로 끝내고 8 행을 다음과 같이 변경합니다 :'foreach {'. 그렇게 일반적인 스타일은 아니지만 복잡한 파이프 라인을 쉽게 따라 할 수 있다고 생각합니다. –