バッチファイルでファイルを置換
あるバッチファイルをダブルクリックすると
特定のファイル名のファイルを置き換えするような事がしたいのです
例えば
c:\aaa\test\a.ini
d:\test\a.ini
というファイルがあったとします
どのフォルダ階層にあるかはわからないのですが
testフォルダ以下にあるa.iniファイルを
a.bakというファイルにリネームして
バッチファイルのカレントに置いてあるa.iniファイルを
そのフォルダにコピーする
test\a.iniファイルがどこにも見つからなければ
該当ファイルが見つかりませんでしたので更新に失敗しました
というようなメッセージを出す
このようなプログラムをバッチファイルで作成する事は可能でしょうか?
バッチファイルの基本コマンドは知っているのですが
forとか高度な使い方はよくわからず教えて頂きたいのです
よろしくお願い致します
No.3ベストアンサー
- 回答日時:
以下のサンプルはCドライブのルートディレクトリ(C:\)からtest\a.iniに該当するファイルを探して、
カレントディレクトリのa.iniに置き換えるものです。
:----------------------------------- sample.bat
echo off
set msg=該当ファイルが見つかりませんでしたので更新に失敗しました
for /d /r C:\ %%d in ( test* ) do (
if /I "%%~nxd"=="test" if exist "%%d\a.ini" (
if exist "%%d\a.bak" del "%%d\a.bak"
ren "%%d\a.ini" a.bak
copy .\a.ini "%%d"
set msg=更新しました
)
)
echo.
echo %msg%
目的のことができました
バッチファイルではそこまで高度な事できないと
あきらめかけていましたが
できるんですね
勉強になりました
No.2
- 回答日時:
このバッチで、バッチのあるディレクトリ以下からa.iniを探し、
見つけたらバッチの場所にコピーをして、元のa.iniをa.bakにリネームできると思います。
※ 複数見つけた場合には上書きを確認する
========
@echo off
rem 変数設定
:SET
set first=a.ini
set second=a.bak
rem ファイル名検索再帰処理
:SEARCH
for /r %%a in (*) do ((set fullpath="%%a") & (set filename=%%~xna))&& (call :NAMECHK)
goto SECEXIT
rem ファイル名存在確認
:NAMECHK
if %filename%==%first% goto COPURENAME
goto :eof
rem コピー&リネーム処理
:COPURENAME
echo %fullpath%
copy %fullpath% /-Y
ren %fullpath% %second%
goto :eof
rem 変数開放
:SECEXIT
set filename=
set first=
set second=
pause
========
参考:
ここを参考にしました。
http://bat-file.seesaa.net/article/44567923.html
この回答への補足
c:\abc\a.ini ←ファイルの置き換えしない
c:\test\a.ini ←ファイルの置き換えする
c:\abc\test\a.ini ←ファイルの置き換えする
このようにtest直下にあるa.iniだけを置き換え対象にしたいのです
testディレクトリの下にあるa.iniだけを置き換え対象にしたい
この条件のところ以外のところは自分でも作る事ができました
testフォルダの下にあるa.iniという条件はどのように判別すればいいでしょうか?
No.1
- 回答日時:
うる覚えです。
すみません。IF EXIST ファイル名
か
DIR
ERRORLEVELで判定し検知、条件分岐したように思います。
メッセージはECHOかPAUSEを使う。
これらの検索をしてみてはどうでしょうか。
すいませんもうしこし具体的にやりたいことを質問しますと
for /r c:\ %%a in (a.ini) do (
ここでファイル置き換え処理を記述
)
このようにするとc:\のサブディレクトリ以下全てのファイルを置換する事が
できるのですが
今回対象としたいのは
test\a.ini
のようにtestディレクトリの下にあるa.iniだけを置き換え対象にしたいのです
以下のように書いてみたのですが
うまくいかなかったので・・・
for /r c:\ %%a in (test/a.ini) do (
ここで処理する
)
for /r c:\ %%a in (*test/a.ini) do (
ここで処理する
)
for /r c:\ %%a in (*/test/a.ini) do (
ここで処理する
)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 Windows10で、フォルダにあるすべてのファイルを、下層フォルダも含め一つの階層へ配置し直したい 3 2022/05/31 09:50
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- Excel(エクセル) パスワード付きExcelブックについて 4 2022/06/02 21:34
- Windows 10 renameコマンドでファイル名からアンダースコアを消す方法 5 2023/04/24 13:33
- ゴルフ ショットナビクレスト ゴルフ場データ更新について 2 2023/01/01 10:34
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- グループウェア 一太郎がイントラで開けません。対処方法を知りたいです。 3 2023/04/04 13:30
- ソフトウェア Aimpに関する質問です。 1 2022/09/08 11:11
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
【VBS】 iniファイルの特定部分のみ変更
Visual Basic(VBA)
-
バッチファイルで、iniファイルの内容を一部書き換える方法を教えてください。
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
ファイル名に ” を使うと エク...
-
ftp処理でmove(移動)を行いたい
-
バッチファイルで、iniファイル...
-
[DOS] コピー先に同じファイル...
-
コマンドプロンプトでファイル...
-
ExcelVBAのDirでスペース含むフ...
-
サブフォルダからファイルをコ...
-
VBA GetAttrについて教えてくだ...
-
gnuplotで日本語を含むepsファ...
-
access,vbaでフォルダ内のファ...
-
【DOSバッチ開発】末尾のタブの...
-
word VBA ファイル名 保存
-
コマンドでファイルコピーする...
-
バッチ処理で16進数でファイル...
-
前日日付のファイルGETバッチ
-
フォルダ内の更新日時が一番新...
-
VB6.0 Dir関数について
-
【vbs】ファイル名の検索と該当...
-
.batでファイル名から抽出して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトで変数が数...
-
[DOS] コピー先に同じファイル...
-
ExcelVBAのDirでスペース含むフ...
-
バッチコマンドでファイル名の...
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
access,vbaでフォルダ内のファ...
-
【Access】エクスポート時のフ...
-
ファイル名に ” を使うと エク...
-
ファイル名を該当フォルダ内か...
-
VBA GetAttrについて教えてくだ...
-
ファイル名の頭5桁と同名のフォ...
-
VBScriptで特別な意味を持つ記...
-
エクセルVBAを使用してJPGファ...
-
DOSのバッチ作成について‐FORの...
-
Windowsコマンドプロンプトで、...
おすすめ情報