내 네트워크 위치 (my tv show downloads 폴더)에서 다른 네트워크 위치 (my pvr)로 파일을 복사하려고하는 vbscript (cscript/vbs)).WScript.Shell.run이 robocopy를 실행해도 대상 매개 변수가 표시되지 않습니다.
xcopy를 사용하려고했지만 문맥없이 "구문 분석 오류"가 발생했습니다. 따옴표 붙은 공백이있는 파일을 보장하는 등의 몇 가지 작업을 시도해 보았습니다.
나는 scripting.filesystemobject의 copyfile 메소드를 사용해 보았지만 "파일 이름이나 번호가 잘못되었습니다"라는 오류로 실패하여 많은 것을 막을 수있었습니다.
현재 일반적으로 위의 두 가지보다 robocopy를 사용하여 복사본을 처리하려고합니다. 하지만 WScript.Shell의 Run 메서드를 사용하여 cscript 내에서 실행하면 대상, 파일 이름 및 매개 변수가 모두 "떨어져"됩니다.
여기 복사 부분이 있습니다. 단지 \\server\path\more path might have spaces\etc\etc
의 형식 -
if dirmatch > "" then
fileFrom = quote(myloc) ' & fil.name) 'fil.name will not need to be quoted
fileTo = quote(dirmatch) ' puts double-quotes around things if they have spaces in the name
' copyCommand = "%comspec% /k xcopy " & fileFrom & " " & fileTo & " /C /D /Y" ' returns "parse error"
copyCommand = "%comspec% /k robocopy " & fileFrom & " " & fileTo & " " & fil.name & " /R:3 /W:10"' /MOV"
logmsg copyCommand
oShellApp.run copyCommand
else
logmsg "no matching directory found for: " & fil.name
end if
는 fileFrom 및 fileTo 내가 이전에 파일 이름 구문 분석을 사용하여 계산 한 디렉토리입니다. fil.name은 파일이며 공백을 포함하지 않습니다 - 점 분리. 폴더 이름의 공백은 내가 사용하는 다른 응용 프로그램에서 일치하는 이유로 필요합니다.
그래서 주어진 파일 복사 명령은 다음과 같이한다 : 새로운 명령 창에서
00:19: %comspec% /k robocopy \\qnap\qdownload\transmission\completed \\pvr\e\tv\MythBusters Mythbusters.S11E03.Hail.Hijinx.HDTV.x264-FQM.mp4 /R:3 /W:10
하지만 ROBOCOPY (예 : cmd.exe /k
)를 다음과 같이 던졌습니다 : 나는 그것을 시작
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Tue Oct 23 21:04:58 2012
Source : \\qnap\qdownload\transmission\completed\
Dest -
Files : *.*
Options : *.* /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
ERROR : No Destination Directory Specified.
맞지만 첫 번째 매개 변수를 지나칠 수는 없습니다. copy를 사용하여 동일한 명령을 수행하면 같은 문제가 발생했을 수 있습니다.
모든 robocopy 매개 변수가 새 cmd 인스턴스로 전달되도록하려면 어떻게해야합니까?
p.s. 내 전체 스크립트는 여기에 : http://pastebin.com/xgpGJYmU : 그것을 최적화하는 자유롭게!