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 data atual no formato (
- 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:: ... return
especifica uma combinação de teclas (aqui: Win+ C) e executa...
quando pressionada.WinGetClass, WinClass, A
armazena o título da janela atualmente ativa na variávelWinClass
.if (WinClass = "CabinetWClass") { ... }
verifique seWinClass
éCabinetWClass
(classe do Windows Explorer).Se sim:,
...
é executado. Caso contrário,SendPlay, #c
emula um traço Win+ normal C.FormatTime, CurrentDate,, yy-MM-dd
armazena a data atual (YY-MM-DD
) na variávelCurrentDate
.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ávelCustomText
.SendPlay, !d^c
seleciona a barra de endereço e copia seu conteúdo para a área de transferência.ClipWait, 1
aguarda 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ávelCurrentDir
.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.