用法:选中文件,ctrl+g,自动整理到 D 盘,通过本实例简单改造可以实现各种自动整理功能,自动化办公的人士可以了解一下!购买文章后,免费给与指导!
    注意:更换代码中“D:\”为自身目标文件夹

    [erphpdown]

    1. ^g::
    2. this_path := Selected_Files() ; 检测选中的文件
    3. Des_path:="D:\"
    4. if (this_path)
    5. loop, Parse, this_path , `n, `r ; 在 `r 之前指定 `n, 这样可以同时支持对 Windows 和 Unix 文件的解析.
    6. {
    7. MoveFilesAndFolders(A_LoopField,Des_path) ; 移动文件
    8. }
    9. else
    10. MsgBox, 没有选中文件!
    11. return
    12. ;移动文件或文件夹
    13. MoveFilesAndFolders(SourcePattern, DestinationFolder, DoOverwrite = false)
    14. ; 移动匹配 SourcePattern 的所有文件和文件夹到 DestinationFolder 文件夹中且
    15. ; 返回无法移动的文件/文件夹的数目.
    16. {
    17. ; 首先移动所有文件 (不是文件夹):
    18. FileMove, %SourcePattern%, %DestinationFolder%, %DoOverwrite%
    19. ErrorCount := ErrorLevel
    20. ; 现在移动所有文件夹:
    21. loop, %SourcePattern%, 2 ; 2 表示 "只获取文件夹".
    22. {
    23. FileMoveDir, %A_LoopFileFullPath%, %DestinationFolder%\%A_LoopFileName%, %DoOverwrite%
    24. ErrorCount += ErrorLevel
    25. if ErrorLevel ; 报告每个出现问题的文件夹名称.
    26. MsgBox, 文件夹%A_LoopFileFullPath% 不能移动至%DestinationFolder%.
    27. }
    28. return ErrorCount
    29. }
    30. ;检查是否选中文件
    31. Selected_Files()
    32. {
    33. ;我的电脑句柄
    34. IfWinActive, ahk_class CabinetWClass
    35. {
    36. for window in ComObjCreate("Shell.Application").Windows
    37. if window.HWND = WinExist("A")
    38. this_window := window
    39. ; 如果多个项目被选中
    40. if(this_window.Document.SelectedItems.Count > 1)
    41. {
    42. these_files := ""
    43. for item in this_window.Document.SelectedItems
    44. these_files .= item.Path . "`n"
    45. return these_files
    46. }
    47. else
    48. return this_window.Document.FocusedItem.Path
    49. }
    50. ; 桌面句柄
    51. if(WinActive("ahk_class Progman") || WinActive("ahk_class WorkerW"))
    52. {
    53. ControlGet, selectedFiles, List, Selected Col1, SysListView321, A
    54. ; 如果多个项目被选中
    55. if InStr(selectedFiles, "`n")
    56. {
    57. these_files := ""
    58. loop, Parse, selectedFiles, `n, `r
    59. these_files .= A_Desktop . "\" . A_LoopField . "`n"
    60. return these_files
    61. }
    62. else
    63. return A_Desktop . "\" . selectedFiles
    64. }
    65. else
    66. return false
    67. }

    [/erphpdown]
    https://www.autoahk.com/archives/9210