2013-06-15 2 views
0

특히 까다로운 배치 스크립팅 요청이 있습니다. 나는 지금이파일을 복사하여 적절한 하위 디렉터리로 이름을 바꿉니다.

/mapcfgs/ 
    /folder 1/ 
    somefile.new 
    somefile.old 
    /folder 2/ 
    someotherfile.new 
    someotherfile.old 
    /folder 3/ 
    someotherotherfile.new 
    someotherotherfile.old 
/maps/ 
    /folder 1/ 
    somefile.inf 
    /folder 2/ 
    someotherfile.inf 
    /folder 3/ 
    someotherotherfile.inf 

같은 파일/폴더 구조가, 내가 뭘하려고 오전 A/mapcfgs/(폴더의 이름)를 복사합니다 스크립트/*를 확인하는 것입니다 수 있습니다. /지도/(이름 새를)/* .inf

내가 겪었던 문제는 내가 어떻게 해야할지 모르겠다. 그냥 내 for 문이 찾은 각 파일의 폴더 이름으로 그 인수를 사용해야하기 때문에. 내 사본 진술서.

내 스크립트는 지금까지와 비슷합니다.

@echo off 
echo hello 
for /f "usebackq tokens=* delims=\" %%a in (`dir /a-d /b /s mapcfgs *.new`) do copy "%%~dpna.new" "maps/%%~na.inf" 
echo script finished 

그러나 난 그냥 /로 모든 파일을 복사 할 필요가지도 /하지만 파일이 mapcfgs 아래에있는 폴더 이름의 이름에 해당하는 /지도에서 해당 폴더의 이름으로. 아무도 이것으로 나를 도울 수 있습니까?

답변

1

이렇게하면됩니다. 당신이 검사 할 수 있도록 명령 atm 만 표시합니다.

@echo off 
pushd "mapcfgs" 
for /f "delims=" %%a in ('dir /ad /b') do (
echo copy "%%a\*.new" "..\maps\%%a\*.inf" 
) 
popd 
pause 
+0

는 ".. \지도는 \ 폴더 1 폴더 1"' 내가이 '사본과 같은 출력 뭔가를 얻기 위해 노력하고 있어요 때 "'복사"1 \는 *. 새 폴더 " 같은 출력 \ somefile.new "".. \ maps \ folder 1 \ somefile.inf " –

+0

'.new' 파일을'.inf'로하고 싶습니다. 위의 수정을 시도하십시오. – foxidrive

+0

나는 당신의 수정을 시도했고, 계속 진행되고있는 매우 어렴풋이 나타나기 시작했다. 이 스크립트는 명령이 에코 출력에서 ​​올바르게 보이더라도 지정된 파일을 찾을 수 없다는 불평을 계속합니다. 필자는 절대 경로를 사용하여 복사 명령을 변경했습니다. 'copy "C : \ My \ Path \ mapcfgs \ folder와 같은 것을 출력하는'echo % \ dp0mapcfgs \ %% a \ *. new" "% ~ dp0maps \ %% a \ *. * .new ""C : \ My \ Path \ maps \ folder 1 \ *. inf "'실제 명령은 경로를 찾을 수 없다는 오류를 일으켜서 비명 같은 일이 일어나지 않습니다 .. –

관련 문제