xcopy 实现批处理拷贝文件或文件夹

xcopy 是一个很有用的 doc 命令, 应该学习学习!

可以用 xcopy 实现, 例如:

C:>xcopy C:\ppt*.* D:\ppt\ /s /e/y /i /q

这条命令的意思就是把 C 盘下的 PPT 文件夹全部拷贝到 D 盘

说明:

/y:不弹出“确认是否覆写已存在目标文件”的提示

/s /e : 参数的作用分别是把子目录和空目录都复制过去,

/e:复制文件及子文件夹内所有内容,包括空文件夹(对比 /s, /s 不复制空文件夹)

/i:如果 b 不存在并且复制超过一个文件则默认 b 是目录名

/q:quiet,静默模式
其他详细参数说明请参考这里

那么,用我们的设计器该怎样实现呢?

首先,模拟键盘快捷键操作,打开 ‘运行窗口’

win + r
xcopy 实现批处理拷贝文件或文件夹
xcopy 实现批处理拷贝文件或文件夹

其次,通过设置文本 + 热键输入,进入命令提示符窗口(cmd)
xcopy 实现批处理拷贝文件或文件夹
然后,通过键盘输入的方式将预设的信息写入 cmd 窗口,通过热键输入方式点击回车
xcopy 实现批处理拷贝文件或文件夹

接下来才是重点,关于 copy 命令,我已将其修改为全局函数模式,可直接复制使用

代码如下

import time
from ubpa.ilog import ILog
from ubpa.baseimg import*

import ubpa.ikeyboard as ikeyboard

 
def xcopy(file_path,copy_path):
	'''
	file_path:源文件路径
	copy_path:目标路径
	'''
	# 代码块
	#file_path = r'F:\bank\pic20180823'
	file_path = file_path
	copy_path = copy_path
	# 热键输入
	ikeyboard.key_send_cs(text='#r',waitfor=10)
	# 键盘输入
	ikeyboard.key_send_cs(win_title=r'运行',text='cmd',waitfor=10)
	# 热键输入
	ikeyboard.key_send_cs(text='{ENTER}',waitfor=10)
	# 代码块
	info = 'xcopy ' + file_path + '\*.*' + r' ' + copy_path + '\ /y /e /i /q'
	# 键盘输入
	time.sleep(2)
	ikeyboard.key_send_cs(win_title=r'C:\WINDOWS\system32\cmd.exe',text=info,waitfor=10)
	# 热键输入
	time.sleep(2)
	ikeyboard.key_send_cs(text='{ENTER}',waitfor=10)

这里需要传入的参数就只有两个了

filepath: 源文件路径
copypath:目标路径