【.cmd】 バッチファイルスクリプト %15 【.bat】at TECH【.cmd】 バッチファイルスクリプト %15 【.bat】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト609:デフォルトの名無しさん 24/11/10 14:06:03.62 9SnRMU05.net そりゃあ終了したら効果が無くなるんだから文法マニアくらいしか書かんだろう 610:デフォルトの名無しさん 24/11/10 18:35:44.79 i0Pkbsqf.net サブルーチンでsetlocal enabledelayedexpansionを使ったら endlocalを書かないと呼び出すたびに環境がコピーされていって あっという間に正常に動作できなくなるさ 611:デフォルトの名無しさん 24/11/10 19:42:53.96 9SnRMU05.net サブルーチンに置くというのは想定しなかったな メインの、というかスクリプトの先頭に置く使い方しかしてないや 612:デフォルトの名無しさん 24/11/10 20:44:53.21 Hbc3IhS3.net call先にsetlocalがあってもexit /bやgoto :eofで戻ると 変数復元されるのでendlocalは不要だが有ってもいい やばいのはforやgotoでのループ内部にsetlocalしかないやつ 613:デフォルトの名無しさん 24/11/10 21:35:28.96 p0BF9o8N.net >>603 ありがとう。 何時間かやってるけどうまくいかないです。 ①@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 の使い方が誤っています。) こういうのをスラスラ書ける天才たちがうらやましい。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch