2013-10-24 1 views
1

나는 이것에 대한 몇 가지 예제를 검색해 보았지만 아무 것도 작동하지 않는 것 같습니다 ... 간단한 Windows 배치 스크립트를 작성하고 있습니다. 파일 압축을 풉니 다. 어떻게 내가 할 수있는문자열에서 파일 경로를 가져 오는 일괄 처리 명령

set zipfile=d:\temp\mysubfolder\myfile.zip 

: 값을 고려

for /f "tokens=*" %%a in ('dir d:\temp\*.zip /s /b /od') do set zipfile=%%a 

단순화하려면 : 내 배치 스크립트에서 동적으로 폴더 및 하위 폴더에서 가장 최근의 Zip 파일로 할당 된 변수 ZipFile를을 가지고 전체 경로 "d : \ temp \ mysubfolder \"를 얻으시겠습니까? 고맙습니다!

답변

1

쉬운이 :

for /f "tokens=*" %%a in ("%zipfile%") do (set fullpath=%%~dpa) 
Echo %fullpath% 

을 완료! %zipfile%에는 따옴표가 없습니다.

는 모나

+0

감사합니다. 계속할 필요가있는만큼 % fullpath % 변수를 얻었습니다. – mahiro

+1

@mahiro는 같은 결과가 더 짧습니다.'for %% in ("% zipfile %") do "fullpath = %% ~ dpa"를 설정하십시오. – Endoro

+0

@Endoro 그러나 공백은 포함하지 않습니다. – Monacraft

1

배치 파일 내에서 라벨을 사용하는 방법에 대한 call /?을 참조하십시오. 또한 매개 변수에서 드라이브, 경로 및 파일 이름을 추출하는 방법에 대해서도 설명합니다.

for 루프 내부에서 전화를 걸 수 있습니다.

+1

고마워요! 위의 코드 행을 사용하여 일괄 처리 스크립트를 작성했지만 팁을 감사드립니다! 이전에 배치 파일에 대한 레이블에 대해 알지 못했기 때문에 다음에 배웠던 것입니다. – mahiro

+0

좋아요. 당신이 배운 것을 기쁘게 생각하며 미래에 무언가를 배치하는 것이 더 쉬워 지길 바랍니다. –

+0

+1하지만'call'은'for/f'보다 느립니다 -> http://www.dostips.com/forum/viewtopic.php?p=10681 – npocmaka

관련 문제