- 版本 v1.1.15.01
- 指南和概述
- 常见问题(FAQ)
- 按字母排序的命令和函数索引
- AutoHotkey 脚本展示
- 变更和新功能
- 基本用法和语法
- 迁移到 AutoHotkey 1.1(AutoHotkey_L)
- 环境管理
- 本机代码互操作
- 文件、目录和磁盘管理
- Drive
- DriveGet
- DriveSpaceFree
- FileAppend
- FileCopy
- FileCopyDir
- FileCreateDir
- FileCreateShortcut
- FileDelete
- FileEncoding [AHK_L 42+]
- FileGetAttrib
- FileGetShortcut
- FileGetSize
- FileGetTime
- FileGetVersion
- FileInstall
- FileMove
- FileMoveDir
- FileOpen [AHK_L 42+]
- FileReadLine
- FileRead
- FileRecycle
- FileRecycleEmpty
- FileRemoveDir
- FileSelectFile
- FileSelectFolder
- FileSetAttrib
- FileSetTime
- IfExist / IfNotExist
- IniDelete
- IniRead
- IniWrite
- Loop(文件和文件夹)
- Loop(读取文件内容)
- SetWorkingDir
- SplitPath
- 流程控制
- 内置函数
- GUI、MsgBox、InputBox 及其他对话框
- 鼠标和键盘
- 鼠标和键盘
- #InstallKeybdHook
- #InstallMouseHook
- #KeyHistory
- BlockInput
- Click [v1.0.43+]
- ControlClick
- ControlSend / ControlSendRaw
- CoordMode
- GetKeyState
- KeyHistory
- KeyWait
- Input
- MouseClick
- MouseClickDrag
- MouseGetPos
- MouseMove
- Send / SendRaw / SendInput / SendPlay / SendEvent: 发送按键和点击
- SendLevel [v1.1.06+]
- SendMode [v1.0.43+]
- SetDefaultMouseSpeed
- SetKeyDelay
- SetMouseDelay
- SetCapsLockState/SetNumLockState/SetScrollLockState
- SetStoreCapslockMode
- 数学相关
- 屏幕管理
- 杂项命令
- 进程管理
- 注册表管理
- 声音命令
- 字符串管理
- 窗口管理
- 控件
- 窗口组
- #WinActivateForce
- DetectHiddenText
- DetectHiddenWindows
- SetTitleMatchMode
- SetWinDelay
- StatusBarGetText
- StatusBarWait
- WinActivate
- WinActivateBottom
- WinClose
- WinGet
- WinGetActiveStats
- WinGetActiveTitle
- WinGetClass
- WinGetPos
- WinGetText
- WinGetTitle
- WinHide
- WinKill
- WinMaximize
- WinMinimize
- WinMinimizeAll / WinMinimizeAllUndo
- WinMove
- WinRestore
- WinSet
- WinSetTitle
- WinShow
- WinWait
- WinWaitActive / WinWaitNotActive
- WinWaitClose
- #指令
FileCopyDir
复制文件夹及其所有子文件夹和文件(类似于 xcopy)。
FileCopyDir, Source, Dest [, Flag]
参数
- Source
源目录的名称 (不含末尾的反斜线), 如果未指定绝对路径则假定在 %A_WorkingDir% 中. 例如: C:\My Folder
- Dest
目标目录的名称 (不含末尾的反斜线), 如果未指定绝对路径则假定在 %A_WorkingDir% 中. 例如: C:\Copy of My Folder
- Flag
(可选参数) 此标志决定了是否覆盖现有的文件:
0 (默认): 不覆盖现有的文件. 如果存在 Dest 名称的文件或目录, 则操作会失败而且不会产生效果.
1: 覆盖现在的文件. 但是,不会删除在 Dest 中没有被 Source 目录中文件覆盖的其他子目录或文件。
此参数可以为 表达式, 甚至是计算结果为真或假的表达式 (因为真和假内部分别保存为 1 和 0).
ErrorLevel
[v1.1.04+] 此命令失败时会抛出异常. 想了解更多信息, 请参阅 运行时错误.
如果遇到问题则 ErrorLevel 被置为 1, 否则为 0. 但是, 如果源目录包含任何由 PageName.htm 文件和名称为 PageName_files 的相应目录组成的网页, 那么即使复制成功也可能提示错误.
备注
如果目标目录结构不存在, 则可行时会进行创建.
由于操作会递归复制文件夹及其所有子文件夹和文件, 所以复制某个文件夹到目标内部的什么位置是不确定的. 要变通解决此问题, 首先把它复制到目标外面, 然后使用 FileMoveDir 把这个副本移动到目标位置.
FileCopyDir 只复制单个文件夹. 要复制整个文件夹的内容 (它的所有文件和子文件夹), 请参照 FileCopy 的示例部分.
相关
FileMoveDir, FileCopy, FileMove, FileDelete, 文件循环, FileSelectFolder, SplitPath
示例
FileCopyDir, C:\My Folder, C:\Copy of My Folder ; 示例 #2: 提示您复制文件夹的可运行脚本. FileSelectFolder, SourceFolder, , 3, Select the folder to copy if SourceFolder = return ; 否则继续. FileSelectFolder, TargetFolder, , 3, Select the folder IN WHICH to create the duplicate folder. if TargetFolder = return ; 否则继续。 MsgBox, 4, , A copy of the folder "%SourceFolder%" will be put into "%TargetFolder%". Continue? IfMsgBox, No return SplitPath, SourceFolder, SourceFolderName ; 仅从它的完整路径中提取文件夹名称. FileCopyDir, %SourceFolder%, %TargetFolder%\%SourceFolderName% if ErrorLevel MsgBox The folder could not be copied, perhaps because a folder of that name already exists in "%TargetFolder%". return
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论