AutoHotKey:如何计算活动文件夹中的文件数并复制到剪贴板?

时间:2018-06-08 17:22:16

标签: autohotkey

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

  1. 文件夹名称
  2. 该文件夹中的文件数
  3. 我已经编写了脚本,我现在需要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
    
    }
    

1 个答案:

答案 0 :(得分:2)

也许看看这样的事情(并在评论中跟随):

; 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

我们,让我们知道你是怎么做出来的。 。