バッチファイルの文字列置き換えについて
set "hoge=%hoge:1=2%"
この形で文字が置き換えれるかと思うのですが、コマンドライン上に上記のコマンド(set "hoge=%hoge:"=”%")を張り付けても"(半角二重引用符)を”(全角二重引用符)に置き換えることができません。
実現したいこと
・ファイル名として出力したい文字列の中にある半角文字を全角文字に置き換えたいです。(バッチにすれば動くので問題ない...?※)
・メモ帳に書いた「set "hoge=%hoge:"=”%"」(全角)をコマンドラインに張り付ける(ctrlV)と「set "hoge=%hoge:"="%"」(半角)になってしまいます。(逆にコマンドライン上で半/全角を切り替えてタイプすると普通にうまくいきます。)
・ほかの記号(!’など)では特に問題なく。
※バッチファイルに書くと正常に動いているようです。
バグかなんかでしょうか。
コマンドライン上の操作
Microsoft Windows [Version 10.0.19043.2006]
(c) Microsoft Corporation. All rights reserved.
D:>set "hoge=aaa"bbb"
D:>set hoge
hoge=aaa"bbb
D:>echo %hoge%
aaa"bbb
D:>
D:>set "hoge=%hoge:"="%"
D:>set hoge
hoge=aaa"bbb
D:>echo %hoge%
aaa"bbb
D:>
D:>set "hoge=aaa"bbb"
D:>set "hoge=%hoge:"=”%"
D:>set hoge
hoge=aaa”bbb
D:>echo %hoge%
aaa”bbb
D:>
該当のソースコード
test.bat
1chcp 65001 2 3set "hoge=aa"bb" 4set hoge 5echo %hoge% 6 7set "hoge=%hoge:"=”%" 8set hoge 9echo %hoge% 10pause
出力
Active code page: 65001
D:>set "hoge=aa"bb"
D:>set hoge
hoge=aa"bb
D:>echo aa"bb
aa"bb
D:>set "hoge=aa”bb"
D:>set hoge
hoge=aa”bb
D:>echo aa”bb
aa”bb
D:>pause
Press any key to continue . . .
試したこと
・バッチファイル上でならうまくいくことを確認。
・chcpコマンドで932と65001を切り替えてみた。
補足情報(FW/ツールのバージョンなど)
Microsoft Windows [Version 10.0.19043.2006]
(c) Microsoft Corporation. All rights reserved.
OS 名: Microsoft Windows 10 Home
OS バージョン: 10.0.19043 N/A ビルド 19043

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/25 02:51