AHK para criar pasta + subpastas

AHK para criar pasta + subpastas

Preciso de um script AHK que crie:

  • uma pasta na pasta atualmente aberta no Windows Explorer (no Windows 7),
  • cujo nome consiste
    • a data atual no formato ( yyyy-mm-dd)
    • o texto que está atualmente na área de transferência
  • a pasta recém-criada deve conter 3 subpastas, denominadas "1", "2" e "3"

Gostaria de copiar algumas palavras (por exemplo, Testing Testing Testing) de outro aplicativo, ir para um local no meu disco rígido (usando o Windows Explorer), ativar a tecla de atalho e o AHK criará para mim uma pasta chamada:

2012-06-04 Testing Testing Testing

com subpastas "1", "2" e "3".

Responder1

O roteiro

#c::
    WinGetClass, WinClass, A
    if (WinClass = "CabinetWClass")
    {
        FormatTime, CurrentDate,, yy-MM-dd
        CustomText = %Clipboard%
        Clipboard = 
        SendPlay, !d^c
        ClipWait, 1
        If ErrorLevel
        {
            MsgBox, Could not read directory name.
            return
        }
        CurrentDir = %Clipboard%
        Clipboard = %CustomText%
        NewDir = %CurrentDir%\%CurrentDate% %CustomText%
        Run, cmd /c (md "%NewDir%" || pause) && md "%NewDir%\1" && md "%NewDir%\2" && md "%NewDir%\3"
    }
    else
        SendPlay, #c
return

Como funciona

  • #c:: ... returnespecifica uma combinação de teclas (aqui: Win+ C) e executa ...quando pressionada.

  • WinGetClass, WinClass, Aarmazena o título da janela atualmente ativa na variável WinClass.

  • if (WinClass = "CabinetWClass") { ... }verifique se WinClassé CabinetWClass(classe do Windows Explorer).

    Se sim:, ...é executado. Caso contrário, SendPlay, #cemula um traço Win+ normal C.

  • FormatTime, CurrentDate,, yy-MM-ddarmazena a data atual ( YY-MM-DD) na variável CurrentDate.

  • Clipboard =limpa a área de transferência, para que possamos verificar quando algo é copiado para ela.

  • CustomText = %Clipboard%copia o conteúdo atual da área de transferência na variável CustomText.

  • SendPlay, !d^cseleciona a barra de endereço e copia seu conteúdo para a área de transferência.

  • ClipWait, 1aguarda até um segundo para que a área de transferência contenha quaisquer dados.

  • If ErrorLevel { ... }verifica se a área de transferência contém algum dado.

    Caso contrário, o script será interrompido.

  • CurrentDir = %Clipboard%copia o conteúdo atual da área de transferência na variável CurrentDir.

  • Clipboard = %CustomText%define a área de transferência de volta ao seu valor original.

  • NewDir = %CurrentDir%\%CurrentDate% %CustomText%especifica o nome do novo diretório.

  • Run, cmd /c ...executa o comando ...e sai.

    • (md "%NewDir%" || pause)tenta criar %NewDir%. Em caso de falha, ele faz uma pausa para que você possa ver a mensagem de erro.

    • md "%NewDir%\1" && md "%NewDir%\2" && md "%NewDir%\3"cria os 3 subdiretórios.

informação relacionada