2017-10-03 20 views
0

소스 파일과 대상 폴더가 둘 다있는 다른 폴더에 내용이있는 폴더를 배치 파일로 복사하는 작업을 도와 줄 수있는 사람이 있습니까? 예 :입력 파일에서 XCOPY 배수

\\server1\folder1 \\server3\folder1 /E /C /I /Q /G /H /R /K /Y /Z /J 
\\server1\folder2 \\server3\folder2 /E /C /I /Q /G /H /R /K /Y /Z /J 
\\server2\folder1 \\server3\folder3 /E /C /I /Q /G /H /R /K /Y /Z /J 
\\server2\folder9 \\server3\folder4 /E /C /I /Q /G /H /R /K /Y /Z /J 
... 

는 내가 명령에 대한를 사용해야하지만 구문을 사용하여 도움이 필요 같아요. 소스 및 대상을 포함하는 입력 파일은 어떻게 생겼습니까?

+0

UNC 경로는 대개 두 개의 슬래시로 시작합니다. \\. 따라서 소스, 대상을 사용하여 구분 된 파일을 만들고 해당 파일을 읽는'FOR/F' 명령을 사용할 수 있습니다. XCOPY 대신 ROBOCOPY를 사용하는 것이 좋습니다. – Squashman

+0

지금까지 시도한 것은 무엇입니까, 어디서 붙어 있습니까? – aschipfl

답변

0

물론, 사용자의 입력 파일을 상정하는 것은 "C : \ input_file.txt", 무슨 일이 일어나고 있는지 볼 수있는이 같은 실행 뭔가 ... 하루의 끝에서

FOR /F "tokens=* delims=? usebackq" %%A IN ("C:\input_file.txt") DO echo %%A 
FOR /F "tokens=* delims=? usebackq" %%A IN ("C:\input_file.txt") DO xcopy %%A 
pause 

당신은 생각이 필요 ...

FOR /F "tokens=* delims=? usebackq" %%A IN ("C:\input_file.txt") DO xcopy %%A 

설명 ...

문서 For /F 루프와 xcopy

For /F 입력 파일을 한 줄씩 반복합니다. 각 줄마다 줄을 조각으로 나눕니다. 이 조각들은 "토큰 (tokens)"이라고 불립니다. 조각은 deliminator (delims)라고하는 문자로 인식됩니다. 이렇게하면 각 줄의 개별 부분으로 작업 할 수 있습니다. 그러나, 귀하의 경우, 귀하의 라인을 분할하지 않아도됩니다. 그들은 이미 인수로 형식화되어 있습니다. 따라서 "?"와 같이 더 불분명 한 불법 파일 경로 문자를 사용하십시오. 당신의 구속 자로. 당신이 거기에 있지 않을 것이라고 내기 할 수 있기 때문에, 전체 라인을 하나의 토큰으로 얻을 수 있습니다.

토큰을 설정하면 모든 토큰을 가져 오지만 토큰이 1 개인 경우 방금 설명한 것처럼 tokens=1 일 수 있습니다.

usebackq 입력 파일 경로 주위의 따옴표를 사용하여 경로의 공백을 처리 할 수 ​​있도록하는 것이 좋습니다.

그런 다음 For /F의 명령 부분을 가지고 Echo 또는 xcopy과 같은 명령을 사용하고 인수로 토큰을 전달할 수 있습니다. 앞서 언급했듯이 이미 텍스트가 여러 개의 인수로 서식이 지정되어 있기 때문에 전체 텍스트 줄을 단일 토큰으로 전달할 수 있습니다.

또한 작업 시스템이 xcopy를 사용하도록 설계된 것처럼 보입니다. 따라서이 설정을 그대로 사용하는 것이 가장 바람직하지만 RoboCopy is a good alternative입니다.