내 개발 컴퓨터를 Powershell 5로 업그레이드했는데 PS2에서 작동하는 코드가 PS5에없는 코드를 작성했습니다.Robocopy with Powershell 5
내 코드는 Robocopy를 사용하여 svn 체크 아웃 디렉토리에서 작업 디렉토리로 파일을 복사합니다. 또한 작업 디렉토리를 정리하는 데 사용됩니다.
원래의 코드는 다음과 같습니다 : 명령이 PowerShell을 5를 사용하여 실행하면 I, 그것은 하나의 명령과 매개 변수를 취급하고 무엇을 발생하는 것을 볼
이$what = @("""/copy:DAT""","""/E""","/XD .svn","/XD Debug","/XF .pdb")
$options = @("""/R:4""","""/W:5""","""/TS""","""/NS""","""/Tee""","""/NP""")
if ($file) {
$cmdArgs = @("""$src""", """$dest""", """$file""", $what, $options)
}else
{
$cmdArgs = @("""$src""", """$dest""", $what, $options)
}
robocopy $cmdArgs
내가
을 얻을 오히려 별도의 매개 변수보다. 단일 큰 따옴표를 시도했지만, 작은 따옴표를 시도했지만 동일한 결과를 얻습니다.ERROR : Invalid Parameter #3 : "/copy:DAT /E /XD .svn /XD Debug /XF .pdb"
내가 하드 코드 실행 라인에 옵션,
robocopy $cmdArgs /COPY:DAT /E /XD .svn /XD Debug /XF .pdb /R:4 /W:5 /TS /NS /Tee /NP
다음 명령이 작동합니다, 그래서 지금은 해결 방법을 가지고 있지만, 여전히 오히려 원래의 매개 변수 구조를했을 경우.
PS5에서이 기능을 사용하려면 어떻게해야합니까? 고맙습니다.
편집 : 내가 가지고있는 '/ XD을 .svn'를 들어 "/ XD을 .svn"
$what = @("""/PURGE""","""/E""","/XD .svn","/XD Debug","/XF .pdb")
$options = @("""/R:4""","""/W:5""","""/TS""","""/NS""","""/Tee""","""/NP""")
$cmdArgs = @("""$srcBase""","""$targetPath"""; $what)
: 오류 : 잘못된 매개 변수 # 5 윈도우 10와 PS5으로, 나는 다음과 같은 오류를 얻고있다 삼중 따옴표, 작은 따옴표, 이스케이프 된 따옴표 등으로 묶으려고했으나 성공하지 못했습니다.
', $ what, $ options' ->'; $ what; $ options' – PetSerAl
제안 해 주셔서 감사합니다. 그러나 같은 문제로 실패합니다. 누군가 PowerShell 5를 사용하여 동일한 시나리오를 시도해 볼 수 있습니까? 이것이 내가 들쭉날쭉 한 배열이라는 것을 알고 있으며, PowerShell이 혼란스러워하는 곳이라고 생각합니다. 그러나 PowerShell에서 robocopy를 실행하는 방법이 필요합니다. –