アプリ版:「スタンプのみでお礼する」機能のリリースについて

OSによって、iniファイルが格納されている場所が違います。

C:\Program Files\bbbb\aaaa.ini または C:\Program Files\aaaa.iniのどちらかにあるaaaa.iniの内容を書き換えるバッチファイルを作りたいです。

書き換える内容は、下記になります。

POP3Server="192.168.1.201" ⇒ POP3Server="192.168.1.208"
SMTPServer="192.168.1.201" ⇒ POP3Server="192.168.1.208"

です。

直接、変更するには台数が多く(100台くらい)できればバッチファイルで
実施したいのですが、今までXCOPYやROBOCOPY等の簡易的なバッチ
ファイルしかなく作ったことがなく、ご教授いただければと思います。

宜しくお願いします。

A 回答 (2件)

Windows バッチでは少々面倒ですので、


Windows Script で処理することをオススメします。

// 書き換えスクリプト.js
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.OpenTextFile(対象ファイル, 1);
var s = a.ReadAll();
a.Close();
s = s.replace(/"192\.168\.1\.201"/, '192.168.1.208');
var b = fso.OpenTextFile(対象ファイル, 2);
b.Write(s);
b.Close();

参考
https://msdn.microsoft.com/ja-jp/library/cc39249 …
https://msdn.microsoft.com/ja-jp/library/cc42807 …
https://msdn.microsoft.com/ja-jp/library/t0kbytz …
    • good
    • 0

Proram Filesの下だと、管理者権限がないと更新できないので、バッチをどうやって起動するかという問題もあるかと思います。



また、IPアドレスでなく、ホスト名で指定しておくと、今回のようにIPアドレスが変わってもファイルを書き換えなくて済みます。世の中みんなそうしてます。

書き換えとしては、

set FILE="C:\Program Files\bbbb\aaaa.ini"
if exist %FILE% goto OK
set FILE="C:\Program Files\aaaa.ini"
if exist %FILE% goto OK
exit /b 1

:OK
set WORK=%TEMP%\work.$$$
del %WORK% 2>NUL
for /f "usebackq delims=" %%A in (%FILE%) do call :SUB "%%~A"
move %WORK% %FILE%
goto :EOF
:SUB
set "A=%~1"
set "A=%A:192.168.1.201=192.168.1.208%"
>>%WORK% echo %A%
goto :EOF
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A