2012-11-02 2 views
1

Powershell 백업 스크립트에 약간의 문제가 있습니다. Robocopy와 함께 Task Scheduler를 사용하여 백업을 배포합니다. PowerShell, Robocopy and SchTasks -> 명령의 변수 및 텍스트 보내기

은 명령의 예입니다

schtasks /Create /SC ONCE /TN $TaskName /TR "robocopy.exe $Source $Target /E /COPY:DAT /V /R:0 /W:0 /LOG+:$LogPfad" /ST $StartTime /SD $StartDate /F 

문제는 내가 내 스크립트를 실행할 때, 작업이 나타날 것입니다,하지만이 같은 변수

의 경우와 같은 텍스트를 사용 예를 들어,이 스크립트는이 명령을 사용하여 작업을 실행합니다 : 백업이 제대로

robocopy.exe $Source $Target /E /COPY:DAT /V /R:0 /W:0 /LOG+:$LogPfad 

실행할 수 없도록.

그것은이 같은 작업에 저장해야합니다

robocopy.exe C:\test\source D:\test\target /E /COPY:DAT /V /R:0 /W:0 /LOG+:$LogPfad 

내가 .bat 파일에서 명령을 저장하고 실행하지만,이 해결책이 될 안된다 수, 기록 할 수 있습니다.

누군가가 나를 도울 수 있다면 환상적 일 것입니다! : 당신은 넣어

schtasks /Create /SC ONCE /TN $TaskName /TR `"robocopy.exe $QuellPfadRAW $ZielPfad /M /E /COPY:DAT /V /R:0 /W:0 /LOG:$LogPfad`" /ST $StartTime /SD $StartDate /F 

"코드를 보면 D

안부

lucbas

+0

당신은 코드의 자세한 내용을 게시 줄래 예약 된 작업을 생성해야합니까? 여기에 변수를 사용할 수 있어야합니다. 코드의 그림이 더 커지면 무엇이 잘못되었는지를 파악하는 데 도움이 될 수 있습니다. – iesou

+0

물론 현재 집이 없습니다. – lucbas

+0

집에 돌아 가면 다시 확인하는 것을 잊지 않으려 고 노력합니다. – iesou

답변

2

당신은 이런 식으로 뭔가를 시도 할 수도 있습니다 s는 Powershell 라인에서 문자 그대로 내부의 모든 것을 취합니다. 즉, 변수가 대체되지 않습니다. 디. 당신이 넣으면

A는`당신의 각각의 앞에 "는 것을 부정해야이야.

이 BTW 다시 연락 할 날이 너무 오래 걸려서 죄송합니다.

1

방법에 대한

$taskrun = "`"robocopy.exe $Source $Target /E /COPY:DAT /V /R:0 /W:0 /LOG+:$LogPfad" /ST $StartTime /SD $StartDate`"" 
schtasks /Create /SC ONCE /TN $taskrun 
+0

당신의 대답에 대해 고마워요. D "" "무엇을 위해 머물렀는지 설명해 주시겠습니까? 감사합니다. – lucbas

+0

'는 특수 문자를 "이스케이프"하기 위해 powershell에서 사용됩니다. 기본적으로 PowerShell은 코드의 일부로 실행하지 않고이를 무시합니다. 더 나은 설명을 위해 여기에 갈 수 있습니다 : [http://ss64.com/ps/syntax-esc.html](http://ss64.com/ps/syntax-esc.html) – iesou