2012-08-05 4 views
0

폴더와 해당 하위 폴더의 모든 이미지를 조작하고 다른 하위 폴더에 있지만 동일한 하위 폴더 구조로 저장하는 프로그램을 실행하고 싶습니다. 이를 위해서는 원본 이미지와 처리 된 이미지의 전체 경로를 얻어야합니다.Windows 배치 : SET 명령을 사용하여 파일 경로의 일부를 변경하십시오.

그러나 단순히 디렉터리 이름을 변환하는 SET 명령을 가져올 수 없습니다. 여기에 내가 할 것입니다 :

set originalpath=g:\Users\PLAY\Documents\backuppgm\images 
set convertpath=g:\Users\PLAY\Documents\backuppgm\resized 
for /R %originalpath% %%G in (*.jpg) DO (
echo %%G 
SET fullpath=%%G 
SET modified=!fullpath:%originalpath%=%convertpath%! 
echo Full: %fullpath% 
echo Modified: %modified% 

아이디어는 fullpath에이 %의 originalpath % \ 하위 폴더 \의에서는 image1.jpg 하고는 동일은 수정 %의 convertpath % \ 하위 폴더 \의에서는 image1.jpg I 동일한 것입니다 이 두 항목에 내 일괄 처리를 실행할 수 있습니다 ... 하지만 그 수정 된 명령이 전혀 작동하지 않습니다 ...

간단히 말해서 % originalpath % \ subfolder \ image1.jpg 문자열을 다음과 같이 변환하고 싶습니다. % convertpath % \ subfolder \ image1.jpg

감사합니다,

blaise

답변

0

두 가지 문제가 있습니다.

1) (예를 들어, "test.cmd")

@echo off 
cls 
set originalpath=g:\Users\PLAY\Documents\backuppgm\images 
set convertpath=g:\Users\PLAY\Documents\backuppgm\resized 
for /R %originalpath% %%G in (*.jpg) DO call :cvt "%%G" 
goto :EOF 
:cvt 
echo "%~1" 
SET fullpath=%~1 
SET modified=!fullpath:%originalpath%=%convertpath%! 
echo Full: %fullpath% 
echo Modified: %modified% 
goto :EOF 

2) 당신은 으로 호출해야을 배치 작업의 예 /V:ON

cmd /V:ON /c test.cmd 
관련 문제