プロが教えるわが家の防犯対策術!

複数ファイル内の特定の文を置換するというbatを書きました。
ログの上では確かに置換されているのですが、実際のファイルをコマンドプロンプトのmoreやメモ帳で開いてみても変更がされていません。

考えうる原因は何でしょうか。
以下したに当該ソースコードを記します。
----------------------------------------------------------------------------------
@echo off
rem カレントディレクトリを取得
cd %~dp0

rem すべての.conファイルを回す
for %%a in (*.con) do (
rem 置換のためのおまじない。
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%b in (%%a) do (
set line=%%b
echo !line:ObjectTemplate.unlockLevel 0=ObjectTemplate.unlockLevel 1!
)
endlocal
)
pause
----------------------------------------------------------------------------------

質問者からの補足コメント

  • ファイルはデスクトップで作業しています。

      補足日時:2017/12/19 00:26
  • おそらく、最後あたりのset line echoの2行だと思います。
    おそらくというのは、リファレンスをつぎはぎしただけで、まだ意味をよく理解していないためです。

      補足日時:2017/12/19 02:34
  • 置換操作のコマンドを記載していませんでした。
    それでも、成功しませんでしたが。
    echo! line 以下、もしくは二個目のforのあとですが、いづれも置換後の行しか残っていませんでした。

      補足日時:2017/12/22 03:14

A 回答 (3件)

少なくとも私には, その文章からあなたが何をどうしてその結果どうなったのかさっぱりわかりません.



どのようなバッチファイルにして, その結果なにがどう不満なんでしょうか? 「置換後の行しか残っていませんでした」ってあるけど, 「置換前の行」などもともと必要としていないのではないのですか?

もっとも, 私は組み込みコマンドしばりに快感を覚える質ではないのでさっさとそれなりなプログラムをインストールしちゃいますけどね.
    • good
    • 0
この回答へのお礼

そうですか、失礼しました。

お礼日時:2017/12/23 00:15

「実際のファイル」をそのバッチファイルのどこで書き換えているのでしょうか?

    • good
    • 0

「実際のファイル」をどこで書き換えているのでしょうか?

    • good
    • 0

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