2013-06-28 3 views
1

디렉터리가 있는지 확인한 다음 존재하는지 확인하는 배치 스크립트가 있습니다.디렉토리 경로의 백 슬래시는 무엇입니까?

if exist \\server\folder1\%username% net use g: \\server\folder1\%username% 

최근 스크립트가 필요로하는 컴퓨터에서 일부 컴퓨터에서 제대로 매핑되지 않은 이유는 그 백 슬래시 차이를 만들 것

if exist \\server\folder1\%username%\ net use g: \\server\folder1\%username% 

로 변경 될 수 있습니다? 같은 디렉토리를 가리키고 있지 않습니까? 왜 "존재한다면"그것을 필요로하고 "순수한 사용"은 그것을 필요로하지 않는가? 사용자는 folder1에 액세스 할 수 없습니다.

지금, 나는 이전 직원에 의해 작성된 같은 파일의 이전 버전을 가로 질러 와서 네 슬래시를 넣어 것입니다 왜

net use g: \\\\server\folder1\%USERNAME% 

로 썼다? 이 방법으로 문제가있는 경우

+0

첫 번째 질문에 사용자 이름에 공백이있을 수 있습니까? –

+0

백 슬래시가 있거나없는 WRT 'IF EXIST'와 동일한 동작이 나타납니다. 그게 문제라고 생각하지 않습니다. 일반적으로 공백이나 다른 특수 문자가 포함될 가능성을 고려하여 항상 경로를 따옴표로 묶습니다. 사용자 이름에는 큰 따옴표를 사용할 수 없습니다. 마지막 질문의 경우 누군가가 네 개의 백 슬래시를 사용하고자하는 유일한 이유는 값이 보간 될 문자열에있는 경우입니다. 이것은 배치/CMD에서 전혀 작동하지 않습니다. ''\\\\ server \ share \ dir1''과 같이 Perl 스크립트 (또는 비슷한 것)에서 복사 된 경로 일 가능성이 높습니다. – mojo

답변

2

는 잘 모르겠지만,
%username%가 유효한 파일 또는 폴더 1에서 폴더의 경우 if exist \\server\folder1\%username%은 TRUE입니다.

끝에 백 슬래시를 추가하면 폴더이있는 경우에만 조건이 참이됩니다.