跳至主要內容

客户端配置文件自动修改方案

五六零网校大约 3 分钟

SAP B1客户端配置文件自动修改方案

提示

五六零出品,必属精品

方案说明

  • 安装SAP B1客户端之后,需要手动修改客户端配置文件
  • 原来需要手动复制,并且新手不知道如何修改配置文件,也不知道该复制到哪里
  • 使用本方案,只需要运行批处理,输入服务器的IP地址,批处理会自动搜索所有盘符SAP B1客户端对应配置,并且只修改对应服务器连接部分。

更新记录

2023.10.09 修复代码,增加已修改文件列表显示



方案下载

五六零网校SAP客户端配置文件自动修改方案open in new window

效果图

效果图
效果图

方案逻辑

  • 自动替换本机安装的SAP B1客户端配置文件
  • 根据用户输入的服务器IP地址,替换配置文件内对应地址

代码使用

  1. 下载批处理或者复制源代码另存为.bat
  2. 右键管理员身份运行批处理
  3. 根据界面输入对应的指令

代码说明

代码说明

  • 请将代码复制到文本,另存为.bat后缀文件
  • 注意另存的时候,选择编码为UFT-8
案例图片
案例图片

批处理代码

@echo off
chcp 65001 > nul
REM 设置代码页为UTF-8,避免中文乱码

REM Check if running as administrator
net session >nul 2>&1
REM 检查是否以管理员身份运行

if %errorLevel% == 0 (
    echo Running with administrator privileges
) else (
    echo 需要以管理员身份运行批处理,否则无法运行
    pause
    exit
)
REM 如果没有管理员权限,则提示需要以管理员身份运行,并退出程序

setlocal enabledelayedexpansion
REM 开启延迟环境变量扩展

echo.
echo.         欢迎使用《五六零网校SAP B1客户端配置文件自动修改方案》
echo.
echo.                 方案地址: https://help.sap560.com/560_fanga/fangan/03.html#%E4%BB%A3%E7%A0%81%E8%AF%B4%E6%98%8E
echo.
echo                                   方案说明
echo.                                      ----
echo     * 运行批处理,自动搜索所有盘符下SAP B1的安装目录,自动修改配置文件
echo. 
echo ---------------------------------------------------------------------------------------------
echo. 
echo                               ※※ 温馨提示 ※※
echo. 
echo     请选择修改模式
echo             →  [1] 模式1:当前配置地址为:localhost,只需要输入新的配置地址
echo             →  [2] 模式2:分别手动输入当前配置地址和新的配置地址
echo. 

:inputA
set "A=localhost"
set /p choice=请选择模式?(1 or 2):
if "%choice%" equ "2" (
    set /p A=请输入当前的配置地址:
    if "!A!"=="" (
        goto :inputA
    )
) else if "%choice%" neq "1" (
    echo 输入错误,请重新输入!
    goto :inputA
)
goto :inputB

:inputB
set "B="
set /p B=请输入新服务器的地址:

if "!A!"=="!B!" (
    echo 两个地址相同,无需替换!
    goto end
)

:inputC
set "C="
set /p C=请输入560确认执行,输入 N 返回模式选择:
if /i "!C!"=="N" (
    goto :inputA
) else if "!C!"=="560" (
    goto :replace
) else (
    echo 输入错误,请输入560确认执行或 N 返回模式选择。
    goto :inputC
)

:replace
echo 正在替换,请稍等...
echo. 
echo 替换列表为:
set "modifiedFiles=0"
set "unmodifiedFiles=0"

set "modifiedFileList="

for %%d in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    for %%F in (
        "%%d:\Program Files\SAP\SAP Business One\Conf\b1-local-machine.xml"
        "%%d:\Program Files\SAP\SAP Business One\Conf\b1-local-machine-template.xml"
        "%%d:\Program Files\SAP\SAP Business One DI API\Conf\b1-local-machine.xml"
        "%%d:\Program Files\SAP\SAP Business One DI API\Conf\b1-local-machine-template.xml"
        "%%d:\Program Files (x86)\SAP\SAP Business One\Conf\b1-local-machine.xml"
        "%%d:\Program Files (x86)\SAP\SAP Business One\Conf\b1-local-machine-template.xml"
        "%%d:\Program Files (x86)\SAP\SAP Business One DI API\Conf\b1-local-machine.xml"
        "%%d:\Program Files (x86)\SAP\SAP Business One DI API\Conf\b1-local-machine-template.xml"
    ) do (
        if exist "%%~fF" (
            powershell -Command "(Get-Content '%%~fF') | Foreach-Object {$_ -replace '!A!', '!B!'} | Set-Content '%%~fF'"
            set /a "modifiedFiles+=1"
            set "modifiedFileList=!modifiedFileList!%%~fF" & echo %%~fF
        ) else (
            set /a "unmodifiedFiles+=1"
        )
    )
)

echo.
echo. 替换完成!
echo.
echo.
:end
pause