|
|
给当前批处理“打包”
代码如下:- @echo off
- ::批处理给当前其他批处理打包,通过修改的话还能扩展很多功能.利用了一些特效中的技巧.
- ::blog hi.baidu.com/523066680
- ::made by 523066680@cn-dos.net 和bbs.bathome.net
- set pname=SetupBat.bat
- for %%a in (*.bat) do (
- if not "%%a"=="%~nx0" (
- if not "%%a"=="%pname%" (call,set file="%%a" %%file%%)
- )
- )
- echo,@set file=%file%>"%pname%"
- set "act="
- ::重定向 执行部分
- for /f "delims= eol=" %%a in (%~snx0) do (
- if "%%a"=="::%pname% end" (goto :next)
- if defined act echo,%%a>>"%pname%"
- if "%%a"=="::%pname%" set act=act
- )
- :next
- ::- - - - - - -重定向内容 - - - - - - - -
- for %%a in (*.bat) do (
- if not "%%a"=="%~nx0" (
- if not "%%a"=="%pname%" (
- echo,::%%a>>"%pname%"
- type "%%a">>"%pname%"
- echo,>>"%pname%"
- echo,::%%a end>>"%pname%"
- )
- )
- )
- ::- - - - - - - - - - - - - - - - - - - -//重定向结束//
- if not exist %~sdp0tempfolder (md %~sdp0\tempfolder)
- move "%pname%" "%~sdp0tempfolder"
- exit
- ::SetupBat.bat
- @echo off
- for %%a in (%file%) do (call :setup %%~a)
- exit
- :setup
- set "act="
- for /f "delims= eol=" %%a in (%~nx0) do (
- if "%%a"=="::%* end" (goto :eof)
- if defined act echo,%%a>>"%*"
- if "%%a"=="::%*" errcommand>"%*" 2>nul&set act=act
- )
- ::SetupBat.bat end
复制代码 它可以干什么呢?可以给当前除本身以外的批处理打包(改改的话其他文本类文件也行)
生成一个SetupBat.bat 在tempfolder文件夹内
在另一个文件夹里双击它(以防出错),就会把之前“打包”的批处理全都解放出来,就像是解压缩一样。
优点:使用上个帖子 批处理分段重定向 (节省echo版) 的原理,生成的时候不会存在echo,结合>>出现的特殊字符问题。
不用慢慢测试然后加转义字符^了,更不用一长串地echo,x>x.x了
1我的观点:
a.当作备份使用,把自己经典的批处理打包起来,就合成了一个文件,然后可以很方便的存放,上传到网络上,
发表文章,这些都可以作为备份方式.
b.以文本形式上传/发表的话就更容易复制/粘贴代码.
c.可以通过打包再打包的方法实现分类打包功能,例如我自己做了一个:5230综合.bat 里面包含有三个子包裹
5230应用类.bat 5230视觉类.bat 5230数值计算类.bat 这几个包裹打开后生成各自包括的批处理作品。
2延展:这个版本的我没做太多功能,不过我认为还可以做成:
a.由用户指定 生成某个文件(段落),生成在哪个文件夹里.
b.如果拿来做坏事也是可怕的。
c.利用这个批处理的性质,还可以很方便的给每个打包后的批处理增加一个文件头信息,例如制作者的信息
或者把SetupBat.bat代码设置成可以由用户设置在文件的开头加上什么注释。
也相当于完成一些批量的操作呢。
d.可以改成对多类文本、脚本的。更深点,能完成这样的功能:
把所有脚本、文本文件以及其位置记录起来,类似压缩目录树,再解压缩一样.而重定向并不会影响其他文件.
当然用batch做这个事儿总怕在符号上有风险。
…………………等等等等
以下是我的批处理集合打包的例子:(是对原来的帖子进行的修正……有一些没发过的作品)
http://bbs.bathome.net/viewthread.php?tid=1627&highlight=%2B523066680
依然可能受到批评,不管怎样 谢谢网站给我这样一个空间。 |
评分
-
查看全部评分
|