AHK для создания папки + подпапок

AHK для создания папки + подпапок

Мне нужен скрипт AHK, который создает:

  • папка в текущей открытой папке в проводнике Windows (в Windows 7),
  • чье имя состоит
    • текущая дата в формате ( yyyy-mm-dd)
    • текст, который в данный момент находится в буфере обмена
  • вновь созданная папка должна содержать 3 подпапки с именами «1», «2» и «3».

Я хочу скопировать несколько слов (например Testing Testing Testing, ) из другого приложения, перейти в папку на жестком диске (используя проводник Windows), активировать горячую клавишу, и AHK создаст для меня папку с именем:

2012-06-04 Testing Testing Testing

с подпапками «1», «2» и «3».

решение1

Сценарий

#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

Как это работает

  • #c:: ... returnопределяет комбинацию клавиш (здесь: Win+ C) и выполняет ее ...при нажатии.

  • WinGetClass, WinClass, Aсохраняет заголовок текущего активного окна в переменной WinClass.

  • if (WinClass = "CabinetWClass") { ... }проверьте, WinClassесть ли CabinetWClass(класс проводника Windows).

    Если да:, ...выполняется. В противном случае SendPlay, #cэмулирует обычный Win+ Cштрих.

  • FormatTime, CurrentDate,, yy-MM-ddсохраняет текущую дату ( YY-MM-DD) в переменной CurrentDate.

  • Clipboard =очищает буфер обмена, чтобы мы могли проверить, когда в него что-то копируется.

  • CustomText = %Clipboard%копирует текущее содержимое буфера обмена в переменную CustomText.

  • SendPlay, !d^cвыбирает адресную строку и копирует ее содержимое в буфер обмена.

  • ClipWait, 1ожидает в течение одной секунды, пока буфер обмена не будет содержать какие-либо данные.

  • If ErrorLevel { ... }проверяет, содержит ли буфер обмена какие-либо данные.

    Если этого не происходит, скрипт прерывается.

  • CurrentDir = %Clipboard%копирует текущее содержимое буфера обмена в переменную CurrentDir.

  • Clipboard = %CustomText%возвращает буфер обмена к исходному значению.

  • NewDir = %CurrentDir%\%CurrentDate% %CustomText%указывает имя нового каталога.

  • Run, cmd /c ...выполняет команду ...и затем выходит.

    • (md "%NewDir%" || pause)пытается создать %NewDir%. В случае неудачи он останавливается, и вы можете увидеть сообщение об ошибке.

    • md "%NewDir%\1" && md "%NewDir%\2" && md "%NewDir%\3"создает 3 подкаталога.

Связанный контент