명령 프롬프트에서 파일과 같은 이름의 폴더를 만드는 방법(반복 하위 폴더)

명령 프롬프트에서 파일과 같은 이름의 폴더를 만드는 방법(반복 하위 폴더)

좋습니다. 이 작업을 수행해야 하는 파일이 15,000개 이상 있습니다.
나는 이것을 내 루트 디렉토리에 시도했습니다 C:\asf> . 명령은 다음과 같습니다.for /r %x in (*.asf) do aifdump -hr "%x" "%CD%"

하지만 파일이 내 루트 디렉터리로 이동하고 있으며
aifdump의 구문을 덮어쓰고 있습니다. aifdump.exe는 [옵션] [ASF_path] [Texture_dump_path]입니다. Python이나 이와 유사한 것을 사용하더라도 이 문제를 해결하는 방법은 괜찮습니다. 도움을 주셔서 감사합니다.

작업에 필요한 경우 샘플은 다음과 같습니다.http://www.mediafire.com/?e9jwa3tkedilcy5

Michael과 Bob의 도움에 감사드립니다. 명령을 실행하면 이렇게 됩니다

C:\asf>for /r %x in (*.asf) do aifdump -hr "%x" "%~dpnx"

C:\asf>aifdump -hr "C:\asf\9\0.asf" "C:\asf\9\0"

Texture 0.dds : 2.00 KB

그런 다음 aifdump가 충돌합니다. 전에 출력 폴더를 만들면

명령을 실행하면 작동하므로 명령을 어떻게 재작업해야 할까요?

aifdump에 대한 명령을 실행하기 전에 필요한 디렉터리입니다.

알았는데 그냥 aifdump -hr바꿔야지mkdir

다시 한번 당신의 도움에 감사드립니다

답변1

%CD%명령을 실행할 때 현재 있었던 디렉토리를 항상 반환합니다. 이 경우에는 C:\asf'. 당신이 요구하는 것을 내가 해석한다면, 당신은 그들 각각이 별도의 디렉토리에 들어가길 원하십니까? 그렇다면 명령에서 해당 디렉터리 이름을 작성하면 됩니다.

그러나 참고하세요.할 수 없다이름과 상위 경로가 동일한 파일과 폴더가 있습니다. 예를 들어, 이름 C:\asdf\asdf.asf이 파일인 경우할 수 없다C:\asdf\asdf.asf또한 경로가 모호하므로 폴더 이름을 만듭니다 .

for가장 쉬운 옵션은 명령이 수행할 수 있는 파일 확장자를 제거하는 것입니다 .

for /r %x in (*.asf) do aifdump -hr "%x" "%~dpnx"

참고: %~dpnx세 개의 수정자를 연결한 것이며 변수 x에 포함된 파일 이름의 드라이브, 경로 및 이름(확장자 없음)을 제공합니다.

답변2

그렇다면 출력 경로가 소스 파일과 같은 위치에 있기를 원하시나요?

for /r %x in (*.asf) do aifdump -hr "%x" "%~dpx"

%~특수 수정자입니다 for /?. 를 참조하세요. 가 : %x이면 드라이브( )와 경로( )를 나타내며 .C:\asf\blah\bleh\file.asfdpC:\asf\blah\bleh\C:\asf\blah\bleh\

관련 정보