【.cmd】 バッチファイルスクリプト %15 【.bat】

レス数: 614

概要: &はbatでの特殊記号であり、コマンドの区切りの意味がある set a=aaaa&set b=bbb&set c=ccc とか複数の命令を1行で書ける 他に&&,||もある
No.601
&はbatでの特殊記号であり、コマンドの区切りの意味がある
set a=aaaa&set b=bbb&set c=ccc
とか複数の命令を1行で書ける
他に&&,||もある
No.602
もしかして、set /p mystringA=あいさつ:で入力したときの話か?
なら、""で括れ
set /p "mystringA=あいさつ:"
set mystringA="%mystringA:&=%"
echo "%mystringA%"
No.603
set mystringA="%mystringA:&=%"→set "mystringA=%mystringA:&=%"
No.604
あと
>>581
はデータを引数渡し("%s%")してるので、「"」をデータ内に入れることができない
ファイル渡しすれば確実だが、他に環境変数(s)で渡す場合を示しておく
data=new ActiveXObject("WScript.Shell").Environment("Process")("s").replace(/12=34/g,"4567");
No.605
ついでに、&について
通常は使わなくても次の行に書けばいいが
閉じた環境からのデータを引渡ししたい場合などはどうしても使わなければならない
set a=1
call :sub
echo %a%
goto :eof
:sub
setlocal
set /a a+=1
endlocal&set a=%a%
goto :eof
No.606
>endlocal&set a=%a%
こんなキモい書き方した事ないな
そもそもsetlocalだかは弊害もあるから使わずに書く事を意識した方がいいね
このスレは安易に使いすぎてる
No.607
ここはキモイ人ばっかりですから問題ないです笑
No.608
遅延展開以外はsetlocalなんて滅多に使わんが他にどうしろと
No.609
setlocal enabledelayedexpansionは書く人多いけど
endlocalで閉じてる人見たこと無い
No.610
そりゃあ終了したら効果が無くなるんだから文法マニアくらいしか書かんだろう
No.611
サブルーチンでsetlocal enabledelayedexpansionを使ったら
endlocalを書かないと呼び出すたびに環境がコピーされていって
あっという間に正常に動作できなくなるさ
No.612
サブルーチンに置くというのは想定しなかったな
メインの、というかスクリプトの先頭に置く使い方しかしてないや
No.613
call先にsetlocalがあってもexit /bやgoto :eofで戻ると
変数復元されるのでendlocalは不要だが有ってもいい
やばいのはforやgotoでのループ内部にsetlocalしかないやつ
No.614
>>604

ありがとう。
何時間かやってるけどうまくいかないです。