[過去ログ] 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
715: 2018/08/12(日)18:16 ID:lJZ67VC6(2/3) AAS
パイプはcallと一緒だなやはり
716: 2018/08/12(日)18:36 ID:lJZ67VC6(3/3) AAS
setコマンドの長いヘルプの下の方に
「ユーザーがこれらの名前の変数を明示的に定義する場合、
その定義は下記の動的な定義を無効にします。」
と書かれてる。errorlevelをsetするのは回避した方がいいだろう
717: 2018/08/12(日)18:40 ID:aLWFoJnR(3/3) AAS
ついでに言っとくと
パイプはデータの受け手が子タスクになったけど
for /fの'コマンド'は送り手が子タスクになる
従って、'コマンド'の中で環境変数に値を入れても、メインタスクには引き継がれない
718: 2018/08/12(日)21:23 ID:pT5cyKVs(4/6) AAS
>>710
難癖付けてばかりで話題提供もできない人はゼロから人生をやり直した方が(ry
719(1): 2018/08/12(日)21:38 ID:pT5cyKVs(5/6) AAS
>>713
んー、俺はもうそこまで調べる気もなくてね…ほぼ諦めてる。
子タスクとかどこの文献見ればあるんだろう?
あってもなくても、んなテクニック、引継ぎできる代物でもあるまい…。
例えば、
type data.txt | cscript //nologo hoge.vbs
if not errorlevel 1 (
:
これも実は…駄目なのだ!!
VBScript側で Call WScript.Quit(1)
省11
720: 2018/08/12(日)21:45 ID:pT5cyKVs(6/6) AAS
あ、ごめん。
if not errorlevel 1 (
正常終了処理
) else (
異常終了処理
)
て書くべきだった
721(1): 2018/08/13(月)00:05 ID:MtAcIApx(1) AAS
勉強になる話題だけど、バッチファイルは言語仕様の規模に比して闇が深すぎると思う
722: 2018/08/13(月)00:46 ID:bTGAGeMt(1) AAS
>>721
そだね
だんだんとwslの利用者が増えていくのだろうな
723: 2018/08/13(月)03:10 ID:EnLsbSTB(1) AAS
>>719
子タスクと言ったのは俺の推測(想像)でしかないから
データの受け渡しを行うのには、送り手と受け手の両者が存在しないと変だろうってことからね
あと、タスクというのも、適当な概念だから
親の環境を引き継いで生成された子環境のことね
実体はスレッドだろうと想像するけど
724: 2018/08/13(月)10:15 ID:aFOAPcea(1) AAS
>>703
綴りといえばenabledelayedexpantionも罠レベルだよ・・・誰だこれ考えたの('A`)
725: 2018/08/13(月)10:38 ID:WsZfoIsu(1) AAS
なるほど引っかかってる
726: 2018/08/15(水)02:41 ID:xax+OHuY(1/3) AAS
元の英語がわかれば
enable delayed expansion
を繋げただけなんだよ
727: 2018/08/15(水)13:28 ID:j7d0pce0(1/7) AAS
質問させてください。
Linuxでいうところの、/dev/nullで標準入力待ちを終了させるのはどうすればいいのでしょうか。
具体的には、Windows向けのopensslコマンドを実行しています。
openssl s_client -connect 〜とやると標準出力が一通り出たところで入力待ちになる仕様で、
コマンドプロンプト上だとCtrl+Cで止めてあげる必要があります。
Linuxだと、末尾に< /dev/nullで終わらせられるのですが、Windowsバッチで同じように終了させる方法は無いでしょうか。
728(2): 2018/08/15(水)13:50 ID:o8lgioa7(1/2) AAS
< nul
じゃダメなの?
729: 2018/08/15(水)13:54 ID:j7d0pce0(2/7) AAS
>>728
書いてなくてすみません。それだとダメでした。
730(1): 2018/08/15(水)14:06 ID:o8lgioa7(2/2) AAS
できるはずなんだけど…
外部リンク:qiita.com
731: 2018/08/15(水)14:36 ID:j7d0pce0(3/7) AAS
>>730
参考サイトありがとうございます。
先ほど教えていただいたのと同じ< nulですよね。
サンプルコマンドの通り打ってみても入力待ちで止まります…。
念のためOpenSSLを入れ直しても変わりませんでした。
サンプルでパイプで渡してる直前まで( < nul 2> nul)で試すと、
実行結果がダーっと出て、入力待ちで止まるんですよね…。
732(1): 2018/08/15(水)15:17 ID:j7d0pce0(4/7) AAS
下のサイトのやり方も参考にしつつやってみましたが、どれも結果は変わらずでした。
後出しですみませんが、当方の環境はWin10 Pro 1803、opensslは1.0.2m.1.0.2oでやってました。
外部リンク:stackoverflow.com
回答くださった方、ありがとうございました。
もしやってみて、何言ってんだ、できたぞ?という方いらっしゃいましたら教えていただければ幸いです。
733(2): 2018/08/15(水)15:19 ID:xax+OHuY(2/3) AAS
制御文字を入力できるエディタ(サクラエディタ等)で
バッチを開いて
nulの代りに[0x03]か0x04の制御コード入れてみては?
734(2): 2018/08/15(水)15:25 ID:jNJ7KLOy(1/2) AAS
>>732
普段OpenSSLは使わないけどたまたまインストールしてあったOpenSSL 1.1.0hで出来たよ
コマンドはこう
openssl s_client -connect example.com:443 < nul 2> nul | openssl x509 -text | findstr Not
735(1): 2018/08/15(水)15:59 ID:j7d0pce0(5/7) AAS
>>734
試していただいてありがとうございます。
そのコマンドを実行したときなのですが、コンソールが返ってくるまで1分ほどかかりませんか? すぐ返りますか?
< nulの有無に関わらず1分ほど待つので、単にタイムアウトか何かで終了しているのかなと思っております。
nulを入力として受け取っているなら、すぐに1個目のパイプより前のコマンドは終わるはずだと思いまして…。
736(1): 2018/08/15(水)16:01 ID:jNJ7KLOy(2/2) AAS
>>735
すぐ返ってくるよ
737(1): 2018/08/15(水)16:09 ID:j7d0pce0(6/7) AAS
>>736
ありがとうございます。
ということは>>728さんと同じ書き方でちゃんとできて、
私の環境起因で何かがおかしいってことですね…。
他のパソコン出してきて試してみようと思います。
>>733さんもありがとうございます。
まずはバッチ化する前にプロンプト上で試している段階で躓いてました。
738: 733 2018/08/15(水)16:14 ID:xax+OHuY(3/3) AAS
>>733
1)コマンドプロンプトで下記のように入力し、hoge.txtを作る
copy con hoge.txt[Enter]
[Ctrl+d]
[Ctrl+z]
2)バッチの方で
<hoge.txt
とすればコンソールでCtrl+Dを入力したのと同じ効果となるはず
739: 2018/08/15(水)16:47 ID:j7d0pce0(7/7) AAS
>>737です。
あの後うまくいきました!アドバイスありがとうございました!
Windows向けに提供されている最新のインストーラを色々試したのですが、
openssl 1.0.2pだとダメ、1.1.0iだと< nulが効きました。
32bit向け、64bit向けのインストーラのどれでも同じ結果でした。
私の試してたのが1.0.2系だけで、>>734さんは1.1.0hで成功してるので、
1.0.2系だとダメなのかもしれません…。
< nulはきっと汎用的なものなので、そんなわけはないと思いたいのですが…。
長々とありがとうございました、大変助かりました。
740(3): 2018/08/15(水)21:05 ID:cg3gjcxB(1) AAS
悪いけど、Windowsバッチに鉄板を求めるのも、追いかけるのも無駄。
歴史的経緯でそうなってしまっている。マトモな資料なんかありゃない。
NULの解釈がコマンドによって違ったって全く不思議じゃあない。
犬のクソをクソだと知りつつカリントウだと思いながら食わなければならないような、そんな代物。
好きで書いてる奴なんかほとんどいないと思う。
バッチで書いた方が良いと判断できる材料がなければVBscriptやPowerShellで書いた方が遥かにいい。
環境が許せば他の言語の導入を検討するのも大いにいい。
よく知られたコマンドをよく知られたイディオム下で使うのでもなければ、バッチでなんか書かない方がいい。
それでもクソみたいにハマることがあるんだから。
741(1): 2018/08/15(水)21:14 ID:OWPSpuGG(1) AAS
UNCパスを一向に解釈しないのがとにかく糞だと思う
742: 2018/08/15(水)21:52 ID:X+03HcfZ(1/4) AAS
移動はできないけど解釈はできるでしょ…
743: 740 2018/08/15(水)21:52 ID:X+03HcfZ(2/4) AAS
xcopy のヘルプは酷い。
Vistaでは「推奨されない。使わないで。robocopyを使って」みたいな文言が出てきた。理由は記述なし。
この文言、7以降では消えた。
ネットワーク越しにxcopy中に通信が切れたらどうなるか、MSは知ってたはずなんだが。
xcopyを使いまくってるクソベンダーどもから「直しきれない。フザけんな!」とでも突き上げを食らったんだろうか?
こういうところも本当に信用できない。
744: 740 2018/08/15(水)21:58 ID:X+03HcfZ(3/4) AAS
>>741
cmd「あ、pushdとかでヨロ」
ネットワーク系で言えばpingが酷い。
if errorlevel そのものが効かない。エラーしたらズルズルっと抜ける。
あ、某SIer(富〇通)のバッチを思い出した。
pingでTCPの疎通確認?エラー処理なし?
バッチとか以前の問題だった。
富〇通は日本から消え去ればいいと思った。
上下前次1-新書関写板覧索設栞歴
あと 258 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.053s