【问题标题】:AutoHotKey: How to Count number of files in active folder and copy to clipboard?AutoHotKey:如何计算活动文件夹中的文件数并复制到剪贴板?
【发布时间】:2018-06-12 01:18:48
【问题描述】:

我有一个很长的文件夹列表,我需要自动将以下两条信息电子表格化到我们现有的 excel 文档中:

  1. 文件夹名称
  2. 该文件夹中的文件数

我已经编写了脚本,直到现在我需要 AHK 来获取活动资源管理器窗口的文件数,复制到剪贴板并 ALT+TAB/粘贴到电子表格中。我打算使用“goto”循环这个脚本,并监控它直到它到达最后一个文件夹,然后使用 ESC 来结束脚本。

获取活动窗口的数值文件计数并将其复制到剪贴板的最简单方法是什么?

到目前为止,我的代码基本上是使用 F2 来“重命名”,因此复制文件夹名称,alt+tab 到电子表格,粘贴进去,移动到电子表格上的文件计数单元格,alt+tab 回到活动的资源管理器窗口,进入所述文件夹 - 现在我被卡住了(我需要将文件计数到剪贴板)。值得注意的是,如果存在 .DS_Store 等系统文件,我希望文件计数忽略它们。

`::

{

Send, {F2}
Sleep, 200
Send, {Ctrl Down}
Sleep, 50
Send, c
sleep, 50
Send, {Ctrl Up}
Sleep, 100
Send, {Alt Down}
Sleep, 50
Send, {Tab}
Sleep, 50
Send, {Alt Up}
Sleep, 100
Send, {Ctrl Down}
Sleep, 50
Send, v
sleep, 50
Send, {Ctrl Up}
Sleep, 100
Send, {Right}
Sleep, 50
Send, {Right}
Sleep, 50
Send, {Right}
Sleep, 100
Send, {Alt Down}
Sleep, 50
Send, {Tab}
Sleep, 50
Send, {Alt Up}
Sleep, 100
Send, {Enter}

^^^^^^^^^^^^^ Need my file count / copy to clipboard here


Esc::ExitApp

}

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    也许看看这样的东西(并在 cmets 中跟进):

    ; Calculate the number of files in a folder and its subfolders:
    SetBatchLines, -1  ; Make the operation run at maximum speed.
    FileNum = 0
    ; FileSelectFolder, WhichFolder  ; Ask the user to pick a folder.
    WhichFolder := Clipboard  ;  assumes full path to folder is in clipboard
    Loop, Files, %WhichFolder%\*.*, R
    {
        if A_LoopFileAttrib contains H,R,S  ; Skip Hidden, Read-only, or System files
            continue  ; Skip this file and move on to the next one
        FileNum += 1
    }
    Clipboard := FileNum
    ClipWait  ; Wait for the clipboard to contain text.
    MsgBox %WhichFolder% has %FileNum% files in it (incl. subfolders).
    

    然后,看看下面的内容,它解释了如何读取和循环浏览目录和文件: https://autohotkey.com/docs/commands/LoopFile.htm.

    嗯,让我们知道你是怎么做到的。 . .

    【讨论】:

    • 太好了,它实际上在我选择指定文件夹时能够将文件数复制到剪贴板的意义上起作用。但是,如果我只是想让它为活动的资源管理器窗口运行该任务,代码会是什么样子?我已经进入文件夹并希望获取活动窗口的文件计数,然后我可以要求脚本在资源管理器中后退一个级别,向下移动一个并在下面的文件夹中重复该任务。感谢您迄今为止的帮助!
    • 好的,请确保您看到我在上面处理只读、隐藏和系统文件的编辑。现在,当您在资源管理器窗口中时,不要向用户询问 WhichFolder,而是复制目录路径的全文名称(使用 ctrl+l 进入地址栏,如果需要,可以使用 ctrl-a 全选,然后 ctrl+ v 将其放入剪贴板),然后使用它将 WhichFolder 设置为: WhichFolder := Clipboard
    • 我已经用上面的方法编辑了答案。只需确保您的脚本在进入此部分之前已将路径名放入剪贴板即可。然后,您将使用新的 FileNum 数据覆盖该剪贴板,然后您可以从那里粘贴它,返回资源管理器并遍历下一个目录并复制该地址,等等。
    • 这非常有效。我在 AHK 有点新手,但我学起来也很快,而且我肯定在这里学到了。将在 Loop 上进行更多阅读,以更深入地了解该功能。投票支持你所有的 cmets 并最终确定你的答案以获得最大代表。这让日常的行政办公任务变得轻而易举!非常感谢!
    • 很高兴它成功了!!非常感谢您推动我超过 1K 代表级别! 8-)
    猜你喜欢
    • 2017-10-14
    • 2020-04-05
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多