
末尾のバッチコードは複文(変数がvの方)では動作しませんが、
非複文(変数がwの方)では動作します。
これはバッチ処理の文字列置換機能のバグでしょうか?仕様でしょうか?
意図は、バッチの文字列変換機能の、
%変数:<置換対象文字列>=<置換後文字列>%
により
「<半角スペース>a<半角スペース>b」
を
「ab」
に変換することです。
IF t==t
は無くてもいいのですが、複文をよく使う場合の雰囲気を出すためにつけてあります。
rem 以下コード----------------------------------------------------------------
rem 複文
IF t==t ( Set v= a b
Set v=%v: =% )
echo v=%v%
rem 非複文
Set w= a b
Set w=%w: =%
echo w=%w%
pause

No.1ベストアンサー
- 回答日時:
バッチファイル。
IF文やFOR文の中で複数コマンドを書く時の注意点 -Windowsのコマンドプロンプト(bat,cmd)
http://tounderlinedk.blogspot.jp/2011/01/if-wind …
に
>**** 問題となる原因
>o コマンドプロンプトは、コマンドを1つずつ実行します。
>o そして、IF文(やFOR文)は、括弧を含めて1つと解釈します。
>o その結果、IF文(やFOR文)の中にある %環境変数% は、全て、IF文(やFOR文)を
>実行する直前の値で置き換わります。
とあります。
カッコ内で v の設定と参照しても設定が生きてないのが期待通りに動かない原因です。
事前に v をクリアしておき、
カッコ内で echo %v% してみると確認できます。
上のような説明が MS からされてるなら「仕様」でしょう。
()内は、()内で設定した値の%%の中での置換どころか、
参照自体がダメなんですねえ。
普通に考えると、()外と()内の値が相互に参照できないとか、
そういう風ならありそうなのですが、
まさか()内で設定した値を()内で参照できないとは
思ってもみませんでした。
勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Excel(エクセル) Excelの複数置換はSUBSTITUTEを重ねるしかない? 9 2022/05/08 11:25
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルを実行後、終了...
-
Windows10のタスクスケジューラ...
-
batファイルを実行してコマンド...
-
WMICでリモートでバッチが実行...
-
Excelの「アクセシビリティ 検...
-
拡張子はなぜ、大文字と小文字...
-
フォルダの並び替えの項目を固...
-
ユーザーファイルのAppDa...
-
ドナルドウズを消す。
-
パソコンのスキップとは何ですか?
-
LAME.EXE をダウンロードしたい...
-
XCOPYでネットワーク越しにコピ...
-
Androidアルバムの画像を消去で...
-
パソコンからICレコーダーにデ...
-
ファイルの開き方(拡張子なし)
-
複数のフォルダへ同時にファイ...
-
「グループ名またはユーザー名...
-
DOSコマンドでファイルをコピー...
-
彼氏に盗撮されていました
-
windows (ウィンドウズ) の 「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10のタスクスケジューラ...
-
リモートデスクトップの取り合...
-
バッチファイルを実行後、終了...
-
batファイルで、call使っても戻...
-
バッチ実行を意図的に失敗させ...
-
oracleのimp-00002エラーについて
-
コマンドの結果を変数に入れたい
-
DHCP設定バッチnetshコマンドに...
-
DOSコマンドのforで空白行をス...
-
バッチファイルでPC情報を取得する
-
batファイルを実行してコマンド...
-
バッチでEnterを認識させ...
-
バッチファイルを常に管理者権...
-
WMICでリモートでバッチが実行...
-
コマンドプロンプトで最新のフ...
-
バッチ実行時にバッチのファイ...
-
バッチプログラムについて(編...
-
bat実行中に引数1の内容を変更...
-
ログオンユーザを簡単に切り替え
-
実行結果を戻り値で取得したい
おすすめ情報