做项目开发的,有时可能会遇到 一些资源文件更新的问题,为了避免每次编译或打包时,手动copy的麻烦,最后的办法就是编写一个命令脚本,用命令去copy,这样就方便多了。
这里介绍一下,用cmd 命令copy的用法:
在Android Studio 中,首先新建一个cmd文件,右键项目 –> new –> cmd script.
如下:
或者也可以在外部用记事本写好命令,再更改后缀名为.cmd
(xxx.cmd 文件应该放在跟目录下!!!)
然后是使用的地方:
同样在根目录下,gradlew.bat 文件中,找到 “:execute”这个关键字。
这样就OK了,在编译时就会自动执行该命令。
但是,这样的话,当编译时执行完这条命令后,会中断停止运行,不会继续往下执行下面语句。
怎么办呢?不如直接把需要执行的命令,直接放在这里就好了。
(注:网上查了很多相关资料,很少关于这种方法的介绍,这是目前能想到的,将就一下.如果有知道更好办法的,欢迎留言告知!)
xcopy D:\AS\test\assets D:\AS\Demo\app\src\main\assets /e /y
xcopy 【源文件】【目标文件】 (注:xcopy 命令,/e 是复制所有子目录,包括空目录, /y 是覆盖现有文件,/a是复制文件,/f
复制时显示完整的源和目标文件名)
Eclipse 中比较简单:
右击项目 –>properties (alt+enter) –> Builders –> new –>program –>输入你的批处理文件,工程目录 就可以了。具体看下图:
最后,贴一下 xcopy 命令的基本使用语法(这里只介绍xcopy命令,如果要有其他命令的话,百度一下吧):
其语法为:
XCOPY source [destination] [/Y][/-Y] [/A | /M] [/D[:date]] [/P] [/S
[/E]] [/W][/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U][/K] [/N]
参数介绍:
/A 拷贝文件,但不改变文件的存档属性。
/M 拷贝文件,同时关闭文件的存档属性。
/D: 拷贝指定日期以后文件。如果没有给出指定日期,仅拷贝比目标文件更新的文件。
/P 在建立每一目标文件时进行提醒。
/S 拷贝当前目录和所有子目录下的所有文件,但不包括空目录。
/E 拷贝当前目录和所有子目录下的所有文件,同时也包括空目录。
/W 在拷贝文件前提示你按任意键确认。
/C 即使有错误发生也继续拷贝。
/Q 在拷贝文件时不显示文件名。
/F 在拷贝时显示所有源文件和目标文件名。
/L 显示被拷贝的文件。
/H 拷贝隐含文件和系统文件。
/R 覆盖只读文件。
/T 建立目录,但不拷贝文件,但不包括空目录和空的子目录。
/T /E 命令包括空的目录和子目录。
/U 更新已经存在的目标文件。
/K 拷贝文件属性。一般来说XCOPY命令将重置只读文件属性。
/Y 不给出提示信息直接覆盖已经存在的文件。
/-Y 在覆盖已经存在的文件时给出提示信息。
/N 拷贝短文件名,即8.3格式的文件。
比如要将d:\xly下所有文件备份到e:\xly1,可以使用如下命令:
xcopy d:\xly\*.*/s/h e:\xly1
又比如,要恢复e:\xly1下2006年6月1日以后的文件至D:\xly,就可使用如下命令:
xcopy e:\xly1\*.*/s/h/d:2006-06-01 d:\xly