Windowsのコマンドプロンプトで、変数に格納した文字列から「スペースだけを消したい」「特定の文字を別の文字に置き換えたい」と思ったことはありませんか?
実は、Windowsには標準で「環境変数の文字列置換」という強力かつシンプルな機能が備わっています。
百聞は一見にしかず。まずは以下のコマンドの挙動を見てみましょう。
💻 実際のコマンド例(スペースを削除する)
コマンドプロンプトを開いて、以下のように実行してみてください。
DOS
c:\>set A='hoge '
c:\>echo %A%
'hoge '
c:\>echo %A: =%
'hoge'
見事に、変数 A のお尻に入っていた不要な半角スペース( )が消去され、'hoge' になっているのがわかります!
💡 どういう仕組み?(書き方のルール)
この置換機能の基本構文は以下のようになっています。
%変数名:置換したい文字=置換後の文字%
今回の例( %A: =% )に当てはめると、次の処理を1行で行っています。
-
変数
Aの中から -
コロン(
:)の直後にある 「半角スペース()」 を探し、 -
イコール(
=)の右側にある 「無(何も指定しない)」 に置き換える(=削除する)。
🛠️ 応用編:別の文字に置き換えることも可能!
「削除」だけでなく、当然「別の文字への置換」も自由自在です。
例1:スラッシュ(/)をハイフン(-)に変える
日付のフォーマットを変換したいときなどに便利です。
DOS
c:\>set DATE_STR=2026/07/15
c:\>echo %DATE_STR:/=-%
2026-07-15
例2:特定の単語を置き換える
1文字だけでなく、文字列丸ごとの置換もばっちり対応しています。
DOS
c:\>set MSG=hello world
c:\>echo %MSG:world=everyone%
hello everyone
📝 まとめ
外部のツールや複雑なスクリプトを使わなくても、Windows標準の %変数名:A=B% という書式さえ覚えておけば、コマンドプロンプトやバッチファイル内での文字列操作が劇的にラクになります。
-
不要なスペースのトリミング
-
ファイルパスのバックスラッシュ(
\)からスラッシュ(/)への変換 -
簡易的な表記揺れの表記統一
など、日々のちょっとした自動化やバッチ作成の際にぜひ役立ててみてください!
