전문가의 도움이 필요합니다 (내 자신의 LOL을 시도한 지 3 일 후) 전문가가 필요합니다. 여기 내 스크립트에서 실패한 부분 :Powershell Quotes asisstance 사용
$yy=(get-date).Year
Invoke-Command -ComputerName *ipaddress* -Credential $moveitcred {
move-item -path "C:\iCApps\Dev\LetterGenerator\Letters\FTS\EDMS\*.txt" -destination "C:\Moveitft\Dev\Letters\Outbound" -force
Start-Process -FilePath "C:\Program Files\7-Zip\7z.exe" -ArgumentList "a -y C:\Moveitft\Dev\Letters\archive\Letters$yy_.zip C:\Moveitft\Dev\Letters\Outbound\*.*"
}
이동이 잘됩니다. 그리고 zip은 잘 작동합니다. 인수 목록에 연도 varible ($ yy)를 포함하고 싶을 때를 제외하고. Powershell은 파일 이름을 조정하기 위해 변수를 채우려하지 않습니다. $ null을 인용하면 폭탄이 터지거나 $ yy가 있어야하는 빈칸으로 작업이 완료됩니다.
프롬프트에서 $ yy 만 실행하면 정확한 연도 값이 반환되므로 부적절한 인용 부호 사용을 추측합니다. 그러나 3 일 동안 인터넷 검색을하고 여러 가지 조합을 시도해 본 후 수건을 던지고 있습니다. 어떤 도움/지침은 너무 크게 감상 할 수있다 :)
대상 서버의 호출 연도가 다른 것으로 가정 할 이유가 있습니까? Start-Process 라인 앞에 $ yy를 scriptblock 안에 선언하고, 나중에 yo가 필요한지 확인하십시오.그렇지 않으면 Invoke-Command와 함께 -ArgumentList를 사용해야 할 수도 있습니다. – notjustme
CORRECT! MJSR 선배에게도 감사합니다. 실제로 어제에 대해 생각하고 있습니다. 그리고 오늘 아침에 누가 당신에게 그것을 확인 했습니까 :) 이것은 해결되었습니다 - 스크립트 블록에서 선언하십시오! –