2012-08-12 1 views
1

안에 넣어 : 배치 파일이 서로 파일 이름이에 따라 내부에 폴더를 만들고 다음에이 파일을 넣어 만드는 방법CMD 배치 파일 이름으로 폴더를 생성하고 내가 좋아하는 약 1000 파일이

_etc_sec 
_home_host_www_temp 
and etc. 

.

모든 파일

는 D에있다 : 우리가 파일이 우리라는 이름의 폴더 D를 만들어야합니다 _etc_sec 이름이있는 경우 \ 그래서 : 파일이 우리를 _home_host_www_temp라는 이름의 우리가있는 경우 \ 등 그래서

: \ 등 다음 파일 D에 파일 _etc_sec을 넣어 d : \ home 폴더를 생성하고이 폴더 안에 폴더 호스트를 생성 한 다음 내부 폴더 호스트를 생성 한 다음 www를 생성하고 _home_host_www_temp 파일을 d : \ home \ host \ www 파일에 저장하십시오.

VBA하지만 배치 cmd는 저에게 어렵습니다. 감사.

+1

Windows에서 파일 이름에'/'을 사용할 수 없기 때문에 Windows 플랫폼에서 다른 언어로 묻는 것을 할 수 없습니다./문자는 \ 폴더 구분 기호 대신 사용할 수 있지만 Windows에서는 항상 신뢰할 수있는 것은 아닙니다. – dbenham

+0

죄송합니다. 파일 이름에 _이 있습니다. –

+0

VBA에서이 작업을 수행하는 방법을 알고 있다면 VBScript를 사용하지 않으시겠습니까? VBA와 거의 동일한 구문을 사용하며 cmd 셸에서 cscript 명령을 통해 직접 실행할 수 있습니다. –

답변

1

SET 검색을 사용하여 _로 변경 한 다음 FOR ~ 변수 p 수정자를 사용하여 생성해야하는 전체 경로를 가져옵니다. 단일 MKDIR 명령은 일련의 중첩 된 디렉토리를 만들 수 있습니다. ! 문자가있는 파일명을 가지고있는 경우에 대비하여 루프 내에서 지연된 확장 기능을 켜고 끕니다.

@echo off 
setlocal disableDelayedExpansion 
for %%F in (*_*) do (
    set "file=%%F" 
    setlocal enableDelayedExpansion 
    for %%A in ("!file:_=\!") do (
    endlocal 
    2>nul mkdir "%%~pA" 
    >nul move "%%F" "%%~pA" 
) 
) 
+0

대단히 감사합니다. –