0

请原谅我。我是个十足的菜鸟。

我有 1 个只有 1 个 IP 地址和版本号的 ini 文件。格式如下:

xxx.xxx.xxx.xxx
abcde 

我总共需要容纳 3 个 IP。我正在寻找创建一个批处理脚本,该脚本将询问用户他们想要连接的位置(每个位置都对应一个 IP 地址)。

例如:NY = 10.0.0.0 DC = 20.0.0.0 LA = 30.0.0.0

批处理会说“你想在哪里连接?1= NY, 2= DC, 3= LA” 当用户为“NY”选择 1 时,脚本将搜索 .ini 文件(始终位于同一位置c:\sample) 并将 IP 更改为正确的 IP (10.0.0.0)。它会有类似“你现在连接到纽约!”的输出。

当用户选择“DC”时,脚本将搜索 .ini 文件并将其更改为 20.0.0.0 等。我可以做一个简单的查找/替换脚本,但只有 2 个 IP,我必须制作一个对于每个相当不方便的位置。

非常感谢任何帮助或指导!

4

2 回答 2

1

这个例子将:

  1. 要求用户输入 NY、DC 或 LA;
  2. 创建 x.tmp,它是 x.ini 的副本,将所有 xxx.xxx... 替换为参数;
  3. 将现有的 x.ini 替换为 x.tmp;

代码:

@Echo Off

:Begin
If Exist c:\sample\x.tmp Del c:\sample\x.tmp
Set /P "var=Choose location (NY, DC, LA):"
If /I "%var%"=="NY" Call :ReplaceIP 10.0.0.0
If /I "%var%"=="DC" Call :ReplaceIP 20.0.0.0
If /I "%var%"=="LA" Call :ReplaceIP 30.0.0.0
If Exist c:\sample\x.tmp (
    Move /Y c:\sample\x.tmp c:\sample\x.ini 1>Nul
    Echo Success!
) Else (
    Echo Invalid option!
)
Pause
GoTo :Begin

:ReplaceIP
For /F "Tokens=1,2,3,4 Delims=." %%i In (c:\sample\x.ini) do If %%j.==. (
    Echo %%i >> c:\sample\x.tmp
) Else (
    Echo %1 >> c:\sample\x.tmp
)
GoTo :EOF
于 2013-07-23T08:28:05.633 回答
0

This should help you out.

@echo off
set "var="
set /p "var=Enter 1 for NY, 2 for DC or 3 for LA"
if "%var%" EQU 1 (
  >c:\sample\file.ini echo 10.0.0.0
  >>c:\sample\file.ini abcde
  )
if "%var%" EQU 2 (
  >c:\sample\file.ini echo 20.0.0.0
  >>c:\sample\file.ini abcde
  )
if "%var%" EQU 3 (
  >c:\sample\file.ini echo 30.0.0.0
  >>c:\sample\file.ini abcde
  )
echo Good luck - I hope you entered the right number! :)
于 2013-07-23T08:01:44.013 回答