问题:项目中,常常会出现,多个工程共享一份SDK的情况,而若每个工程下都复制一份SDK,在上传到GIT或SVN等工具时,文件过大,是一件非常烦恼的事。
解决办法:对于这种情况,通常是采用,只在目录下保留一份SDK,当需要使用某个工程时,运行拷贝脚本。
所以,在这里,我们先实现一个简单的demo程序。
例如,当前目录结构如下:
- [ ] 假如此时我们需要将1.txt分别复制到wjj1-wjj3中。
首先,我们需要熟悉下会用到的几个命令
-
for 命令
用for来遍历wjj1-wjj3文件夹,并判断这些文件夹中,是否已经存在1.txt。
for /d 用于搜索目录或文件夹(不搜索文件),而且只搜索指定目录,不搜索子目录。
/r 递归查找目录下所有文件夹、文件
/l 迭代指定的数值范围,例如for /l %%i in (1,5),意思便是for循环i=1 直到i=5
/f 通常用于查找指定文件内容 -
copy命令
copy 1.txt + 2.txt 3.txt
将文件1.txt 与 2.txt 合并为3.txt
copy 1.txt +
复制文件到自己
copy con 1.txt
输入内容存为指定文件,从屏幕中等待输入,按ctrl+z结束输入,输入内容保存为1.txt -
echo命令
有点类似于C语言的printf,输出信息的时候用,懂得都懂哈哈哈。而@echo则比较有意思,命令加上@之后,脚本运行时,别人便看到你脚本里的内容。感觉对保密性还是很有帮助的。
熟悉完基本要用到的命令之后,便要开始编写脚本啦。
作为一名合格的编程人,第一件事当然是敲上帅气的注释!代码牛不牛逼不重要,注释写的高大上就可以!
脚本中的注释常用Rem命令
@Rem 脚本功能:拷贝1.txt到当前目录下所有wwj文件夹中
@Rem 作者:xzx
@echo 开始复制.......
@Rem 设置变量DIR的值为当前目录
set DIR=%cd%
@Rem 仅遍历当前目录下所有wjj开头的文件夹
for /d %%i in (%DIR%\wjj*) do (
@echo %%i
if not exist "%%i\1.txt" (
@echo %%i copy
copy "%DIR%\1.txt" "%%i\1.txt"
)
)
@echo 复制结束.....
@echo success
@Rem pause的作用为等待一次用户输入,方便我们看到脚本执行的过程,便于调试
pause
到这里,一个简单的demo就实现啦,而根据不同情况的不同需求,可以对脚本进行不同的改写。在需要不同功能的时候,查阅不同资料,这样才可以快速提升自己的脚本编写能力!