locked
FBA 过程中 执行 自己的 批处理文件BAT 失败 RRS feed

  • 问题

  • 因为我的系统占用空间太大,导致在FBA过程中,装后面几个软件的时候会提示系统硬盘容量不足!
    但是又没有办法删减组件,所以想了一个办法,
    就是在FBA过程中,某一个软件安装成功后,紧接着就把其相应的安装文件给删除!

    例如:
    在 Phase 11000 时候,会安装 .NET Framework 3.5 SP1,
    然后我在 Phase 11010 时候,执行了一个 删除 安装文件的 批处理文件
    rmdir /S /Q C:\dotNetFramework

    但是,结果是,在 FBA结束后,验证发现,这个文件夹并没有被删除!
    我手动直接运行这个 BAT 文件,可以成功删除,说明 这个 命令本身是没有问题的!
    2009年6月25日 1:01

答案

  • 已经找到答案了!


    需要创建一个 FBA Generic Command.

    在 Path 里面 写 C:\Windows\System32\cmd.exe
    在 Argument 里面写 /c rmdir /S /Q C:\****** 
    (/c 是传导参数的关键) (rmdir是删除文件夹的命令) (/S /Q 是rmdir的参数)
    • 已标记为答案 Jevons Guo 2009年6月30日 6:50
    2009年6月30日 6:50

全部回复

  • 你可以直接在编译的时候不用.NET Framework 3.5 SP1呀!这样不是更省事?
    2009年6月25日 3:28
    版主
  • 编译的时候 不用 .NET ? 这是 什么意思?
    这个组件是我的系统里必须要有的啊!
    不用的话, 那我怎么安装啊?

    Windows Embedded Standard 2009 没有默认支持 3.5 SP1,所以是我自己做的组件!
    2009年6月25日 3:29
  • 已经找到答案了!


    需要创建一个 FBA Generic Command.

    在 Path 里面 写 C:\Windows\System32\cmd.exe
    在 Argument 里面写 /c rmdir /S /Q C:\****** 
    (/c 是传导参数的关键) (rmdir是删除文件夹的命令) (/S /Q 是rmdir的参数)
    • 已标记为答案 Jevons Guo 2009年6月30日 6:50
    2009年6月30日 6:50
  •  Phase 11000
     这个参数是咋来的?这么计算
    2009年6月30日 8:58
  • 这个是自己定义的啊,不是应该 大于 8500, 小于 12000 都可以么? 呵呵!
    2009年7月1日 2:47
  • 有没有具体的参考文档之类的,那个11010 你又是怎么得出来的
    我比较好奇这个,现在正做东西 可以把*.MSI的都打包成组件 正好用到你这个Phase的值,我不太了解该怎么设置,看了几个都11000
    2009年7月1日 2:48
  • 这个是帮助文档里面写的!
    ==========================================================================================
    Phase
    Type Required or optional

    Integer

    Required

    Determines the time during FBA processing at which the command runs.

    Note:
    You must specify a phase that is above the 0-8500 system-reserved phase range.

    In most cases, the value should be set at 8501. If the processing needs to occur after cloning, the value should be set at 12000.

    至于那个 11010 ,也是自己定义的!
    因为我要在 11000 安装程序,所以删除 安装文件必须在那个动作之后,然后我就定义了 11010 咯!其实定多少都可以吧!只要是在 其他动作之前,然后又小于12000 就可以了!
    2009年7月1日 2:54