Board logo

标题: [文件操作] 请教将软件安装过程批处理化? [打印本页]

作者: 1e3e    时间: 2012-3-20 10:36     标题: 请教将软件安装过程批处理化?

本帖最后由 1e3e 于 2012-3-20 20:39 编辑

已知:
某软件安装并不写注册表,只是向系统增加文件。
通过工具监视得到某软件安装增加了如下文件,见1.txt。
1.txt的内容是:
C:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb.manifest
C:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb.cat
C:\WINDOWS\WinSxS\Policies\x86_policy.8.0.Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_x-ww_77c24773\8.0.50727.163.policy
C:\WINDOWS\WinSxS\Policies\x86_policy.8.0.Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_x-ww_77c24773\8.0.50727.163.cat
C:\WINDOWS\WinSxS\Policies\x86_policy.8.0.Microsoft.VC804997\8.0.50727.163.cat
现在要通过批处理来模拟这个软件安装过程,使这个软件绿色化,怎么做?
作者: CrLf    时间: 2012-3-20 16:56

本帖最后由 CrLf 于 2012-3-20 17:33 编辑

标题修改后基本符合版规,故将原警告贴删除,感谢支持
作者: 1e3e    时间: 2012-3-20 17:31

请不要用“高难度”这类毫无意义的标题,标题应能简要说明帖子内容,既方便坛友浏览,也方便日后搜索
因楼 ...
CrLf 发表于 2012-3-20 16:56

版主说的很有道理,我改了,呵呵
另外烦你看一下,能给出解决方法么?谢谢
作者: CrLf    时间: 2012-3-20 17:36

这些文件从何处获取?
作者: 1e3e    时间: 2012-3-20 17:54

这些文件从何处获取?
CrLf 发表于 2012-3-20 17:36

晕,安装某个软件后只是增加了如下文件:
C:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb.manifest
C:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb.cat
C:\WINDOWS\WinSxS\Policies\x86_policy.8.0.Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_x-ww_77c24773\8.0.50727.163.policy
C:\WINDOWS\WinSxS\Policies\x86_policy.8.0.Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_x-ww_77c24773\8.0.50727.163.cat
现在能不能用批处理把这些文件复制出来,再在一个新系统中用批处理复制这些文件到相应的路径下,这样就可以不用再点安装主程序安装这个软件了
(也就是说实现软件绿化)
作者: find    时间: 2012-3-20 18:53

回复 5# 1e3e


你第一次安装完毕之后不就得到这几个文件了吗。
以后再(绿色)安装的时候,把它们跟bat放在一起,在bat里面把它们复制到指定目录即可。
作者: apang    时间: 2012-3-20 19:03

分两步,第一步,第一次安装完毕之后复制文件:
  1. @echo off
  2. pushd "%~dp0"
  3. md software 2>nul
  4. for /f "delims=" %%a in (1.txt) do (
  5.     copy /y "%%a" "software\"
  6. )
复制代码
第二步,将下面代码保存为bat,与复制好的文件(夹)一起做成自解压式的安装文件:
  1. @echo off
  2. pushd "%~dp0"
  3. for /f "delims=" %%a in (1.txt) do (
  4.     copy /y "software\%%~nxa" "%%~dpa"
  5. )
复制代码
楼主看咋样?
作者: 1e3e    时间: 2012-3-20 20:39

分两步,第一步,第一次安装完毕之后复制文件:第二步,将下面代码保存为bat,与复制好的文件(夹)一起做成 ...
apang 发表于 2012-3-20 19:03

代码不错,可是不同路径下可能有同名文件:
比如:
C:\WINDOWS\WinSxS\Policies\x86_policy.8.0.Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_x-ww_77c24773\8.0.50727.163.cat
C:\WINDOWS\WinSxS\Policies\x86_policy.8.0.Microsoft.VC804997\8.0.50727.163.cat
作者: find    时间: 2012-3-20 21:02

回复 8# 1e3e


这两个同名文件的内容是否相同呢?
作者: apang    时间: 2012-3-21 09:22

回复 8# 1e3e

那这样呢?
1.
  1. @echo off
  2. pushd "%~dp0"
  3. md software 2>nul
  4. for /f "delims=" %%a in (1.txt) do (
  5.     xcopy /h /r /s /y "%%a" "software%%~pa"
  6. )
复制代码
2.
  1. @echo off
  2. pushd "%~dp0"
  3. for /f "delims=" %%a in (1.txt) do (
  4.     xcopy /s /h /r /y "software%%~pnxa" "%%~dpa"
  5. )
复制代码

作者: 1e3e    时间: 2012-3-22 12:48

回复  1e3e


这两个同名文件的内容是否相同呢?
find 发表于 2012-3-20 21:02

内容并不相同
作者: 1e3e    时间: 2012-4-1 22:53

回复  1e3e

那这样呢?
1.2.
apang 发表于 2012-3-21 09:22



    非常感谢呀,最近忙,没过来看




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2