批处理文件:运行if else命令和regedit一起添加到一个文件中

时间:2015-07-15 19:14:33

标签: windows batch-file if-statement set registry

这是为了工作。我不能使用VB脚本。我必须在一个.bat文件中完成两个项目。你能帮我在一个.bat文件中运行第1项和第2项吗? 1.添加注册表键命令 2.执行IF语句和命令

  1. 添加到注册表:
  2.   

    REGEDIT4

         

    ; @ start regedit / s“%~f0”& goto:eof

         

    [HKEY_LOCAL_MACHINE \ SOFTWARE \ TEST]

    1. 执行我的任务:
    2.   

      :CheckOS

           

      如果存在“%PROGRAMFILES(X86)%”(GOTO 64BIT)ELSE(GOTO 32BIT)

           

      :64BIT

           

      setlocal ENABLEDELAYEDEXPANSION

           

      set filein =“c:\ Program Files(x86)\ Premier MDC \ mdt.ini”

           

      设置fileout =“c:\ Program Files(x86)\ Premier MDC \ mdtnew.ini”

           

      设置fileold =“c:\ Program Files(x86)\ Premier MDC \ mdtold.ini”

           

      set old = 10.17.8.64

           

      设置新= 10.253.0.1

           

      for / f“tokens = * delims =¶”%% i in('“type%filein%”')do(

           

      设置str = %% i

           

      设置str =!str:%old%=%new%!

           回声!str! >> %FILEOUT%)

           

      移动%filein %% fileold%

           

      移动%fileout %% filein%

           

      GOTO END

           

      :32BIT

           

      setlocal ENABLEDELAYEDEXPANSION

           

      设置filein =“c:\ Program Files \ Premier MDC \ mdt.ini”

           

      设置fileout =“c:\ Program Files \ Premier MDC \ mdtnew.ini”

           

      设置fileold =“c:\ Program Files \ Premier MDC \ mdtold.ini”

           

      set old = 10.17.8.64

           

      设置新= 10.253.0.1

           

      for / f“tokens = * delims =¶”%% i in('“type%filein%”')do(

           

      设置str = %% i

           

      设置str =!str:%old%=%new%!

           回声!str! >> %FILEOUT%)

           

      移动%filein %% fileold%

           

      移动%fileout %% filein%

           

      GOTO END

           

      :END

      我已经在单独的.bat文件中相互独立地测试了它们,它们完美地工作。我只需要帮助将它们组合成一个文件并让它运行两个任务。感谢。

1 个答案:

答案 0 :(得分:0)

除了@xOxxOm建议的更改之外......你有很多重复的代码。这很难维护,因为需要在2个地方进行任何更改。换成这样的东西:

set "PF=%ProgramFiles%
if exist "%ProgramFiles(x86)%" set "PF=%ProgramFiles(x86)%"
setlocal ENABLEDELAYEDEXPANSION
set filein="%PF%\Premier MDC\mdt.ini"
set fileout="%PF%\Premier MDC\mdtnew.ini"
set fileold="%PF%\Premier MDC\mdtold.ini"
. . . (one set of your duplicated code here)