2015-01-02 4 views
-1

.avi 및 .wav 파일이 많은 폴더가 있습니다. 그때 등 {Name1}라는 폴더, {Name2}, 그 폴더에 복사 각각의 파일을 생성하는 식을 필요배치 : 파일 이름의 일부를 기반으로 폴더를 만든 다음 파일을 복사하십시오.

{NameX}_{DateX}

다음과 같이 자신의 이름입니다.

미리 감사드립니다.

편집 : 죄송합니다, 여기까지 제가 시도한 바가 있습니다.

@ECHO OFF 
SETLOCAL 
SET "sourcedir=c:\sourcedir" 
PUSHD %sourcedir% 
FOR /f "tokens=1*" %%a IN (
'dir /b /a-d "*_*_*_*_*_*_*_*.avi"' 
) DO ( 
MD %%a 
MOVE "%%a %%b" .\%%a\ 
) 
POPD 
GOTO :EOF 

그래도 작동하지 않았고 이유를 알 수 없습니다.

구체적인 파일 이름이 있습니다. 도움이 될 것 같습니다.

hl2_2014_12_26_04_05_12_268.avi 
+0

나는 그것을 사용하는 필요성을 느껴본 적이 없어서 일종의 초심자이지만, 나는 [this thread] (http://stackoverflow.com/questions/)의 도움을 받아 조금도 엉망으로 만들었다. 19992530/batch-create-folder-of-part-of-file-name-and-the-folder)이 글은 다음과 같이 함께 자수했다. ( @ECHO OFF SETLOCAL SET "sourcedir = c : \ sourcedir" PUSHD % sourcedir % 토큰 = 1 * "%% IN ( 'dir/b/ad"* _ * _ * _ * _ * _ * _ * _ *. avi " ' ) DO ( MD %% a MOVE"%% a %% b ". \ %% a \ ) POPD GOTO : EOF' –

+0

@TiagoVeloso - 질문을 편집하고이 코드를 도움의 ​​출발점으로 삼습니다. –

+0

나는 그것을 지금했다; 나는 코멘트가 서식을 유지하지 않았다는 것을 알지 못했다. –

답변

0

귀하는 입니다. 실제로는입니다.

FOR 문에 구분 기호가 누락되었습니다. delims 매개 변수를 생략하면 공백이 기본값으로 사용되므로 밑줄로 구분됩니다. 그런 다음 토큰을 결합하여 MOVE 문에 파일 이름을 다시 "재조 립"해야합니다.

@ECHO OFF 
SETLOCAL 
SET "sourcedir=c:\sourcedir" 
PUSHD %sourcedir% 

REM Use the underscore _ as a delimiter. 
FOR /f "tokens=1,* delims=_" %%a IN ('dir /b /a-d "*_*_*_*_*_*_*_*.avi"') DO (
    REM Name the folder based on what is before the first token. 
    MD %%a 
    REM To get the full filename, concatenate the tokens back together. 
    MOVE "%%a_%%b" .\%%a\ 
) 
POPD 
GOTO :EOF 
+0

감사합니다 뭉치 남자, 당신은 내 하루를 만들어 :) –

관련 문제