【.cmd】 バッチファイルスクリプト %15 【.bat】 (772レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
604(1): デフォルトの名無しさん [sage] 2024/11/09(土) 14:43:11.36 ID:A663IrvX(4/5) AAS
あと>>581581(4): デフォルトの名無しさん [sage] 2024/11/07(木) 12:14:54.61 ID:9xnRXsv4(1) AAS
>>580
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);
はデータを引数渡し("%s%")してるので、「"」をデータ内に入れることができない
ファイル渡しすれば確実だが、他に環境変数(s)で渡す場合を示しておく
data=new ActiveXObject("WScript.Shell").Environment("Process")("s").replace(/12=34/g,"4567");
614: デフォルトの名無しさん [] 2024/11/10(日) 21:35:28.96 ID:p0BF9o8N(1) AAS
>>604
ありがとう。
何時間かやってるけどうまくいかないです。
?@if (0)==(0) echo off
rem ***
:start
?set /p "ss=ss:"
?set "ss=%ss:&=%"
?set /p "savename=保存名:"
?set ss=%ss% option "%savename%"
?echo %ss%確認1
?cscript //nologo /e:jscript "%~f0" "%URL%"
rem ***for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%ss%"') do set ss= %%i
?echo %ss%確認2
goto :start
rem ***
?@end
// JScript部分
// var data = WScript.Arguments(0);
?data=new ActiveXObject("WScript.Shell").Environment("Process")("ss");
?data = data.replace(/aaaaa/g, "bbbbb");
?data = data.replace(/12=34/g, "56=78");
?data = data.replace(/encoding=seg/g, "");
?WScript.StdOut.WriteLine(data);
?WScript.Quit();
これでやると?で?〜?が無視される。
?にvarという変数を与えても同じ。
?をdata = WScript.Arguments(0);にすると与えた入力が途中で途切れる(実際の入力値に”が入ってるため)
?の代わりにfor文だとbatが落ちる(AppleWebKit/537.36 の使い方が誤っています。)
こういうのをスラスラ書ける天才たちがうらやましい。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.030s