您当前位置: 首页 » 脚本 » 打包修改过的文件的批处理

打包修改过的文件的批处理

2010年06月24日 | 发表评论(1) 查看评论

在没有进行版本管理的项目中,常常会因为忘记修改过哪些文件而把整个项目都覆盖一遍,既浪费网络带宽又浪费时间,每次覆盖都要在FTP上传好久,于是我就写了一个批处理脚本,将修改过的需要覆盖的文件打包成一个压缩包,代码如下:

@echo off
:: 网站更新文件打包程序

:: 设置临时目录:
set TEMP=temp

set /P FROM=源文件目录^(默认为www^):
if @%FROM%@==@@ set FROM=www

set /P TO=导出压缩包文件名^(默认为update-%date:~0,4%%date:~5,2%%date:~8,2%^):
if @%TO%@==@@ set TO=update-%date:~0,4%%date:~5,2%%date:~8,2%

set /P DAY=修改时间^(m-d-y,默认为今天{%date:~5,5%-%date:~0,4%}^):
if @%DAY%@==@@ set DAY=%date:~5,5%-%date:~0,4%

:: 将要打包的文件复制到临时文件夹,将排除文件列表(excludelist.txt)中的文件排除在外
xcopy %FROM% %temp% /S /Y /I /D:%DAY% /EXCLUDE:excludelist.txt

:: 使用7z命令行程序进行打包
7z a -t7z %TO%.7z .\%temp%\*

:: 删除临时文件
rmdir /S /Q %temp%

echo 文件已打包到 %TO%.7z
pause>nul

该批处理使用了7-zip的命令行压缩工具来打包,将7z.exe复制到当前目录即可
excludelist.txt 中包含了需要排除的文件列表,xcopy的帮助中是这样说明的:

指定含有字符串的文件列表。每一个字符串必须在文件的单独行中。如果有任何字符串与要被复制的文件的绝对路径相符,那个文件将不会得到复制。
例如,指定如 \obj\ 或 .obj 的字符串会排除目录 obj 下面的所有文件或带有 .obj 扩展名的文件。

分类:

脚本

| 标签:

,

发表评论?

1 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据