2011-03-08 7 views
7

구문 % ~ f1은 파일 이름을 나타내는 매개 변수를 정규화 된 경로로 수정합니다. 매개 변수 값뿐만 아니라 배치 스크립트 내에서 정의 된 변수에 대해 해당 기능을 사용할 수있는 방법이 있습니까? 사용자가 "TEST.TXT의"명령 줄 매개 변수를 제공하는 경우매개 변수 대신 변수에 배치 매개 변수 한정자를 사용하는 방법

예를 들어, 다음 스크립트가 작동합니다
는 자격을 갖춘 파일 이름을 에코 % ~ F1

을하지만은과 같은 일을하려고하면 매개 변수 대신 변수를 사용하면 어떻게 동일한 기능을 사용할 수 있습니까? 이 시도는 잘못된 구문과 작동하지 않습니다
세트 unqualifiedFilename = "TEST.TXT은"
자격을 갖춘 파일 이름을 에코 : 내가 생각할 수 % ~ funqualifiedFilename

답변

4

가장 간단한 방법은 단지 FOR 명령을 사용하는 것입니다.

예제 배치 스크립트

@echo off 
setlocal 
set FileName=test.cmd 

for %%i in (%FileName%) do set FullPath=%%~fi 

echo Original param was '%FileName%'; full path is '%FullPath%' 

샘플 출력 :

Original param was 'test.cmd'; full path is 'C:\test.cmd'
+0

완벽하게 작동합니다. 감사합니다! – Blaine

4

번째 방법은 함수를 호출 % 1을 사용하는 것이다 ... % n 개의 파라미터

@echo off 
set FileName=test.cmd 
call :GetFullPath %FileName% 

echo Original param was '%FileName%'; full path is '%FullPath%' 
goto :eof 

:GetFullPath 
set "FullPath=%~f1" 
goto :eof