Um script em lote para criar uma pasta para cada arquivo

1

Pode ser uma duplicação disso, mas preciso de uma pequena revisão: Criando uma pasta a partir dos primeiros 5 caracteres do nome do arquivo em um arquivo de lote

Não preciso selecionar as cinco primeiras letras do arquivo. Eu quero o nome da pasta para ser exatamente o mesmo que o nome do arquivo. E eu quero que isso aconteça na pasta onde quer que o batchscript esteja localizado. Por isso, deve detectar a pasta atual.

Qualquer maneira fácil de modificar o script original?

EDIT: Na verdade, não é necessária muita modificação. No entanto, quando cria as pastas, inclui a extensão do arquivo. Existe uma maneira de remover a extensão do arquivo?

    
por masfenix 20.07.2012 / 18:24

1 resposta

1

Usar ~n inclui apenas o nome do arquivo sem a extensão.

Você nem precisa de um arquivo de lote inteiro, apenas a seguinte linha é suficiente:

for %i in (*) do md "%~ni"

Ele deve ser executado a partir do diretório de destino, portanto, o diretório atual é irrelevante, pois md "%~ni" é o padrão para criar o diretório no diretório de trabalho atual.

Se você quiser executá-lo a partir de qualquer diretório e passá-lo ao alvo (por exemplo, criar um atalho para arrastar e soltar pastas), você poderá usá-lo (por exemplo, Files2Folders.bat ):

@for %%i in (%1\*) do md "%1\%%~ni"
    
por 20.07.2012 / 18:29

Tags