como criar uma pasta com o mesmo nome de um arquivo no prompt de comando (Recursar subpastas)

0

Ok, eu tenho mais de 15.000 arquivos para fazer isso.
Eu tentei isso meu diretório raiz é C:\asf> o comando é: for /r %x in (*.asf) do aifdump -hr "%x" "%CD%"

mas os arquivos estão indo para o diretório raiz e estão sendo sobrescritos
a sintaxe para aifdump é aifdump.exe [Option] [ASF_path] [Texture_dump_path] qualquer método para corrigir este problema é ok mesmo se você usar python ou similar obrigado por sua ajuda

aqui está uma amostra se você precisar trabalhar com: link

obrigado por sua ajuda Michael e Bob. quando eu executar o comando faz isso

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

C:\asf>aifdump -hr "C:\asfTexture 0.dds : 2.00 KB.asf" "C:\asfaifdump -hr"

mkdir

e depois o aifdump irá falhar. Descobri que se eu fizer a pasta de saída antes

executando o comando ele funcionará, então como eu refiz o comando para fazer

os diretórios necessários antes de executar o comando para aifdump.

Eu percebi que tinha que mudar %code% para %code%

mais uma vez obrigado pela sua ajuda

    
por Justin 01.05.2012 / 16:30

2 respostas

0

%CD% sempre retornará o diretório que você estava usando quando executou o comando; neste caso, é C:\asf '. Se eu interpretar o que você está perguntando, você quer que cada um deles vá para um diretório separado? Nesse caso, você só precisa criar esse nome de diretório em seu comando.

Note, no entanto, que você não pode ter um arquivo e uma pasta com o mesmo nome e o mesmo caminho pai; por exemplo, se você tivesse um arquivo chamado C:\asdf\asdf.asf , você não poderia também criar uma pasta chamada C:\asdf\asdf.asf porque o caminho seria ambíguo.

A opção mais fácil seria retirar a extensão do arquivo, que o comando for pode fazer por você:

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

NOTA: %~dpnx é uma concatenação de três modificadores e fornece a unidade, o caminho e o nome (sem extensão) do nome do arquivo contido na variável x.

    
por 01.05.2012 / 16:41
0

Então, eu acho que você quer que o caminho de saída esteja no mesmo lugar que o arquivo de origem?

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

O %~ é um modificador especial, consulte for /? . Se %x for C:\asf\blah\bleh\file.asf : dp indica unidade ( C: ) e caminho ( \asf\blah\bleh\ ), tornando C:\asf\blah\bleh\ .

    
por 01.05.2012 / 16:39