问题:项目中,常常会出现,多个工程共享一份SDK的情况,而若每个工程下都复制一份SDK,在上传到GIT或SVN等工具时,文件过大,是一件非常烦恼的事。

解决办法:对于这种情况,通常是采用,只在目录下保留一份SDK,当需要使用某个工程时,运行拷贝脚本。

所以,在这里,我们先实现一个简单的demo程序。
例如,当前目录结构如下:
在这里插入图片描述

- [ ] 假如此时我们需要将1.txt分别复制到wjj1-wjj3中。

首先,我们需要熟悉下会用到的几个命令

  1. for 命令
    用for来遍历wjj1-wjj3文件夹,并判断这些文件夹中,是否已经存在1.txt。
    for /d 用于搜索目录或文件夹(不搜索文件),而且只搜索指定目录,不搜索子目录。
    /r 递归查找目录下所有文件夹、文件
    /l 迭代指定的数值范围,例如for /l %%i in (1,5),意思便是for循环i=1 直到i=5
    /f 通常用于查找指定文件内容

  2. 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

  3. 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就实现啦,而根据不同情况的不同需求,可以对脚本进行不同的改写。在需要不同功能的时候,查阅不同资料,这样才可以快速提升自己的脚本编写能力!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐