0

すみません。私は完全な初心者です。

IP アドレスとバージョン番号が 1 つのみの ini ファイルが 1 つあります。次の形式です。

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 を正しいもの (10.0.0.0) に変更します。「You're now connected to NY!」のような出力が得られます。

ユーザーが「DC」を選択すると、スクリプトは .ini ファイルを検索し、20.0.0.0 などに変更します。単純な検索/置換スクリプトを実行できますが、IP が 2 つしかなく、1 つを作成する必要がありました。かなり不便だった場所ごとに。

どんな助けや指導も大歓迎です!

4

2 に答える 2

1

この例は次のようになります。

  1. NY、DC、または LA を入力するようにユーザーに依頼します。
  2. x.ini のコピーである x.tmp を作成し、すべての 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

これはあなたを助けるはずです。

@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 に答える