Arquivo de lote do Windows para mover o conteúdo com base no tipo de arquivo

0

Eu estava descobrindo uma maneira de gerenciar meus arquivos baixados do chrome.Eu quero que meu arquivo pdf deve salvar no diretório ABC, arquivo de áudio deve salvar no diretório XYZ etc.Eu pensei uma maneira de fazê-lo através de arquivo em lote.Minha o arquivo de lote será executado silenciosamente em segundo plano e distribuirá automaticamente os arquivos baixados nas pastas necessárias de acordo com o tipo de arquivo.

Para o tipo de arquivo html, como também é possível salvar um diretório que contenha muitas coisas relacionadas a essa página html. Portanto, preciso mover o arquivo .html e o diretório associado também.

Eu escrevi um código para fazer isso, mas estou enfrentando um problema aqui. Ele move o arquivo .html, mas não move seu respectivo diretório. No prompt de comando, ele mostra 1 dir (s) movido, mas na verdade o diretório não está se movendo.

Aqui está o código:

    @echo off

    setlocal EnableDelayedExpansion

    for %%i in (*.html) do (
    move "%%~i" HTML
    set dirName=%%i
    set dirNameWithoutExtension=!dirName:~0,-5!
    move %dirNameWithoutExtension% HTML

    )

Por favor, sugira se existe alguma maneira simples de servir o propósito de distribuir arquivos baixados de acordo com o tipo de arquivo.

    
por user3189612 11.04.2015 / 06:05

2 respostas

0

@echo off
setlocal EnableDelayedExpansion
if not exist HTML md HTML
for %%i in (*.html) do (
    move "%%~i" HTML
    set dirName=%%i
    set dirNameWithoutExtension=!dirName:~0,-5!
    move "!dirNameWithoutExtension!" HTML
)

Você pode criar um arquivo de lote genérico para lidar com extensões diferentes ou apenas usar um dos muitos utilitários criados apenas para esse propósito.

    
por 11.04.2015 / 08:15
0

Tente usar caminhos relativos, sem desembaraçar a instrução For , você pode tentar

%%~i\..\

e subsequente

%%~i\..\..\..\ 

andando de volta até a raiz, se necessário?

    
por 11.04.2015 / 06:18