使用 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") { ... }检查是否WinClassCabinetWClass(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 个子目录。

相关内容