【.cmd】 バッチファイルスクリプト %15 【.bat】 (768レス)
前次1-
抽出解除 レス栞

581
(4): デフォルトの名無しさん [sage] 2024/11/07(木) 12:14:54.61 ID:9xnRXsv4(1) AAS
>>580
580(1): デフォルトの名無しさん [] 2024/11/07(木) 11:01:23.05 ID:5OQwBO7R(1/2) AAS
batファイルで=を含む置換えの時の方法教えてください。
入力は Hello World 12=34

@echo off
set /p mystringA=あいさつ:
set mystringB=%mystringA:12=34=4567%
echo %mystringB%

結果をこのようにしたい
Hello World 4567
batだけでやるには大変(=の置換は無理)
変換前に1文字ずつ判定して=だったら普通使われない文字(=とか)に変えるとかしないとできない
別の方法としては別の言語でサポートしてやれば楽
@if (0)==(0) echo off
rem *** このブロックにbat内容を記述する
set s=Hello World 12=34
cscript //nologo /e:jscript "%~f0" "%s%"
rem for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%s%"') do set s=%%i
rem echo %s%
goto :eof
rem ***
@end
//これ以降はjscriptの処理部
var data=WScript.Arguments(0).replace(/12=34/g,"4567");
WScript.StdOut.WriteLine(data);
582: デフォルトの名無しさん [] 2024/11/07(木) 12:33:40.59 ID:5OQwBO7R(2/2) AAS
>>581
サイトによって特殊文字は^だったり"を使ったりで試して出来なかった
代案をわざわざありがとうございます^^
597: デフォルトの名無しさん [] 2024/11/09(土) 11:39:56.84 ID:L7dYAlvM(1) AAS
>>581
またつまづきました><
入力 12&encoding=se34 56=78

これで&encoding=seを削除したくて
set "s=%s:^&=%"

で&を通したんですが
'encoding'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されません。

となって出来ないです
set "s=%s:^encoding=%"
data = data.replace(/&encoding=se/g, "");
のように加えてもダメでした
どうすればいいですか?
600: デフォルトの名無しさん [sage] 2024/11/09(土) 13:21:59.27 ID:L+GgUCLJ(2/3) AAS
jscriptは>>581のようにOS標準で入ってる古いjavascript
最近の構文は一部使えないがバッチよりも動作が高速で正規表現など文字列処理にも適している
他にpowershellもある
604
(1): デフォルトの名無しさん [sage] 2024/11/09(土) 14:43:11.36 ID:A663IrvX(4/5) AAS
あと>>581はデータを引数渡し("%s%")してるので、「"」をデータ内に入れることができない
ファイル渡しすれば確実だが、他に環境変数(s)で渡す場合を示しておく
data=new ActiveXObject("WScript.Shell").Environment("Process")("s").replace(/12=34/g,"4567");
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.045s