2017-09-17 9 views
0

코드는 test.tx 파일에 대한 간단한 심볼릭 링크 창조자가 될하기위한 것입니다,하지만 난 그것을 실행할 때 나는 3 개 개의 출력을 얻을 :일괄 변수에 공백이 있으면 세 개의 출력이 나오는 이유는 무엇입니까?

mklink "H:\Backups\Batch Files\Batch" "H:\Backups\Batch Files\File System\test.txt" 
mklink "H:\Backups\Batch Files\File" "H:\Backups\Batch Files\File System\test.txt" 
mklink "H:\Backups\Batch Files\test.txt" "H:\Backups\Batch Files\File System\test.txt" 

스크립트 :

@Echo off 

set "src=H:\Backups\Batch Files\File System\test.txt" 
set "des=H:\Backups\Batch Files" 

FOR %%A IN (%src%) DO (echo mklink "%des%\%%~nxA" "%src%") 

timeout 30 

답변

2

값에 할당 srcH:\Backups\Batch Files\File System\test.txt입니다.

이 때문에 for 번 각 문자열과 함께 echo 세번 do 것, 세 개의 공간 분리 문자열이다.

단일 엔티티로 문자열을 해석하는 cmd을 원하는 경우에, 할 수 있습니다

1/할당 할 때, set "src="H:\Backups\Batch Files\File System\test.txt""
또는
을 문자열 견적 2/FOR %%A IN ("%src%") DO (...

+0

아를 사용할 때 값을 견적! "분리 된 공간 분리 된 문자열"- 화려한! 나는 그것을 깨닫지 못했다. 다른 스크립트에서도이 문제가 발생했습니다. 당신의 도움을 주셔서 감사합니다! –