2010-03-19 3 views
1

VBScript를 사용하여 xcopy를 사용하여 파일을 복사하고 있습니다. 문제는 폴더 경로를 사용자가 입력해야한다는 것입니다. 이 경로를 변수에 넣었다 고 가정하면 (예 : h)이 변수를 xcopy 명령에서 어떻게 사용합니까?VBScript를 사용하여 xcopy를 통해 파일을 복사 할 때 문제가 발생했습니다.

여기에 내가 노력 코드는 다음과 같습니다

Dim WshShell, oExec, g, h 
h = "D:\newfolder" 

g = "xcopy $h D:\y\ /E" 
Set WshShell = CreateObject("WScript.Shell") 

Set oExec = WshShell.Exec(g) 

가 나는 또한 &h을 시도했지만 작동하지 않았다. 누구든지 올바른 구문을 이해하도록 도와 줄 수 있습니까? 어떤 도움을 주셔서 감사합니다.

답변

2

따옴표를 올바르게 사용하지 않는 것이 문제 일 수 있습니다. 이 따옴표로 경로를 래핑 경로의 시작과 끝을 삽입하여, 그래서이

Dim WshShell, oExec,g,h 
h= Chr(34) & "D:\newfolder" & Chr(34) 
g="xcopy " & h & " " & Chr(34) & "D:\y\" & Chr(34) & " /E" 
Set WshShell = CreateObject("WScript.Shell") 

Set oExec = WshShell.Exec(g) 

경로가 인용 부호에 포함되어야합니다 어느 경로에 공백, 대하가있는 경우

(34) 인용 문자 시도 .

원본 경로는 C : \ Documents and Settings입니다. 이를 xcopy에 전달하면 소스가 'C : \ Documents'이고 대상은 'and'이고 인수는 'Settings \'입니다. 이것은 xcopy "C : \ Documents and Settings" "C : \"/ e를 전달하면 소스가 'C : \ Documents and Settings'이고 목적지가 'C'인 것을 알고 있으므로 경로를 따옴표로 묶어야하는 이유입니다 : \ '이며 인수는'/ e '입니다.

+0

Btw, 문자열에 따옴표를 넣으려면'Chr (34)'로 연결하는 대신 이중 따옴표 (' ""')를 사용할 수 있습니다. 개인적으로 나는 후자가 너무 길다는 것을 안다. – Helen

+0

고마워요. 그 지금 일하고있어. – sushant

0
g = "xcopy " & h & " D:\y\ /E" 
+0

그것이 작동하지 않습니다 – sushant

+1

무엇이 오류입니까? – aphoria

+0

우리는 h와 다음 코드 사이에 공백을 추가하는 것을 잊어 버렸습니다. 있어야합니다 : g = "xcopy"& h & ""& "D : \ y \/E" – sushant

0

VBscript 변수는 이름으로 만 참조되므로 $ 또는 &과 같은 접두사는 필요하지 않습니다. 나는 다른 제안이 작동한다고 상상할 것이다

관련 문제