2012-05-10 4 views
3

간단한 일괄 처리 파일에서 오류가 발생합니다. 이 파일은 "xyz.4do"파일을 같은 디렉토리에 복사 한 다음 복사 된 파일의 이름을 "abc.4do"로 바꾸고 마지막으로 복사 된/이름이 바뀐 파일을 다른 폴더로 옮깁니다.복사, 이름 바꾸기, 모두 이동 실패 일괄 처리 명령

내 아래 코드는 내가 오류가 발생하는 경우 댓글을 달았 :

@ECHO off 
CLS 
SETLOCAL 

SET file=C:/users/xyz/desktop/xyz.4do 
SET newName=abc.4do 
SET endDir=C:/users/abc/desktop 

REM Error occurs on below line: "The system cannot find the file specified" but the file exists 
COPY %file% 
REM Error below: "The syntax of the command is incorrect" 
REN %file% %newName% 
REM Error occurs on below line: "The system cannot find the file specified" 
MOVE %newName% %endDir% 

ECHO. 
PAUSE 
ENDLOCAL 

답변

5

윈도우 다시 사용 앞으로 / 슬래시하지, 폴더 구분 기호로 \을 슬래시. 많은 명령은 슬래시 (slash)를 사용하여 일종의 작업을하지만 신뢰할 수는 없습니다.

상단의 경로를 변경하여 백 슬래시를 사용하면 모든 것이 작동합니다.

그것은 바로 오늘 게시 된이 다른 질문에 관련이 있기 때문에 당신이 오늘과 같은 질문을하는 것이 재미있다 : Why does the cmd.exe shell on Windows fail with paths using a forward-slash ('/'') path separator?

+0

하지만 작동하지 않습니다 슬래시를 다시 변경 : 미래의 배치 참고로

COPY %file% %endDir%\%newName% 

는,이 사이트를보십시오. 그것은 여전히 ​​첫 번째 복사 명령에 대한 파일을 찾을 수 없다고 말합니다. 또한 배치 파일은 xyz.4do가 다른 디렉토리에서 실행 중임을 유의해야합니다. –

0

복사 명령은 하나의 인수 명령, 당신은 소스와 대상이 모두 필요하지 않습니다 .

당신은 방법으로, 하나의 명령으로 함께 할 수 있어야한다 : http://ss64.com/nt/copy.html

+1

절대적으로 잘못된 주장입니다. 대상 인수는 선택 사항입니다. 기본값은 현재 폴더입니다. MicroSoft 문서는 인수를 둘러싼 대괄호로 대상을 선택 사항으로 명확하게 보여줍니다. – dbenham

+0

@dbenham Gah! Batch로 작업 한 이후로 너무 오래되었습니다. – Riking

관련 문제