[過去ログ] 【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(1): 2016/11/26(土)06:30 ID:pZYy6q7Y(1/2) AAS
前スレ
【最強CUI】PowerShell -Part 1
2chスレ:tech
973: 2018/10/07(日)00:51 ID:KvcjzmFM(1) AAS
3.0以降じゃないとPsCustomObject使えないとか、コマンドレット充実してなくてNETライブラリ使う羽目になって、もうこれC#で書いたほうが良くね?になるあたりかね
974: 2018/10/07(日)02:34 ID:MeohIHbL(1/2) AAS
coreに移行して大分経ってからGet-ScheduledTaskとかのWindows専用っぽいコマンドレット無くなってるのに気付いた
まあこれはあんまり使わんしpowershell.exeで実行すりゃいいか
975(1): 2018/10/07(日)06:17 ID:mFTX0OZ0(1) AAS
where-objectでフィルタをかける時、複数条件が必要な場合は
パイプでつなぐしかないですかね?andとかあればいいんですけど
where-object 条件1 | where-object 条件2
976: 2018/10/07(日)06:44 ID:MeohIHbL(2/2) AAS
論理演算子はもちろんあります
-and -orなど
977: 2018/10/07(日)10:50 ID:VwaVbKnV(1) AAS
>>975
サンプルだと
? {$arg -eq "test" -or $arg2 -eq "test"}
みたいな感じ
-使う演算子が繋がって違和感あるかもしれんけど
978(1): 2018/10/07(日)11:44 ID:I8sm2uyS(1) AAS
そもそもカンマでcriteraの文字列を区切ればor指定になるのでは
979(4): 2018/10/07(日)21:44 ID:/+/kkqPE(2/2) AAS
>>978
どゆこと?
$arg -eq "test1","test2"
とかやってもならないけど
980(2): 2018/10/08(月)20:48 ID:7Fv0bXJp(1/5) AAS
パワーシェル内でパワーシェルを呼び出す時、どのパワーシェルの処理が成功してるか失敗してるかわかるようにログ出すのはどうすればいいんでしょうか?
981: 2018/10/08(月)21:56 ID:sIA/07pT(1) AAS
>>980
スクリプトの名前等を頭につけるとか
982: 2018/10/08(月)22:04 ID:7Fv0bXJp(2/5) AAS
ごめん。全然わからん・・・
983(1): 2018/10/08(月)22:05 ID:vQC6HMz5(1) AAS
argsでIDを渡すとか
powershell -command { "ID: $($args[0])"} -args 777
984(2): 2018/10/08(月)22:19 ID:7Fv0bXJp(3/5) AAS
バッチファイルみたいにリダイレクトではログ渡せないのかな?
2>1
みたいなかんじで?
985: 2018/10/08(月)23:19 ID:nFrei6GD(1) AAS
$?で前回のコマンドの実行結果
$lastexitcodeにexitコマンドで返された値が入る(呼び出したスクリプトはexitに戻り値を付けて終了させないとダメ)
$?だとスクリプト内の最後のコマンドの結果が帰るからスクリプトの作りによっては失敗の判定は出来ないのはバッチとかと一緒
986: 2018/10/08(月)23:24 ID:7Fv0bXJp(4/5) AAS
なるほど
呼び出すスクリプト内にエラーコードで正常か異常か$?で判定させてそれをifかなんかで分岐させてエラーコードを呼び出し元のスクリプトの$lastexitcodeをehcoする感じですかね?
987: 2018/10/08(月)23:32 ID:rY44Et0R(1) AAS
>>979に答えてくれないか
988: 2018/10/08(月)23:41 ID:GVMVzq1c(1/2) AAS
>>980
成否判定ならこれでよくね
hoge.ps1
$hoge = $true
if($hoge){exit 1}
exit 0
-------------
$ps = Start-Process hoge.ps1 -Wait -PassThru
switch($ps.ExitCode) {
0 {
省6
989: 2018/10/08(月)23:44 ID:L+98sdt+(1) AAS
「どの」を見落としてる
990(2): 2018/10/08(月)23:45 ID:7Fv0bXJp(5/5) AAS
これを呼び出すスクリプト全部に書くってこと?
呼び出し元と先が複数あって、先を全部修正するのが大変なので出来れば元だけで完結させたい
が、無理そうなのでこれを全てに書いていく?
991: 2018/10/08(月)23:55 ID:GVMVzq1c(2/2) AAS
>>990
0で戻ってきたらokにでもすれば
いじらんで良いやろ
992: 2018/10/09(火)00:01 ID:G4IJkzod(1/3) AAS
>>990
exitで成否を戻した方がしっかり判定できる
呼び出したスクリプトで何が発生したら失敗とするかをしっかり判定しないの?
結果コードでの判定とか曖昧すぎてトラブルの元と思う
993: 2018/10/09(火)00:57 ID:VXCTyrZC(1) AAS
>>984
実際にやりたいことがわからないけどエラーメッセージをリダイレクトするだけなら同じようにできるよ
powershell ./hoge.ps1 2>>log.txt
994(1): 2018/10/09(火)03:31 ID:0K1bBeTL(1) AAS
>>979
知らないけど、switch 文で、カンマを使うとか?
そういう意味じゃないの?
995(1): 2018/10/09(火)05:18 ID:06HomXwK(1) AAS
>>979
-inならいけるけど、まあ違うんだろうな
dir | where { $_.name -in "a1.txt","a2.txt","b1.txt" }
$list = @( "a1.txt","a2.txt","b1.txt" )
dir | where { $_.name -in $list }
996(1): 2018/10/09(火)08:24 ID:2kAOJdzZ(1) AAS
>>979
適当こいただけじゃないのかな
PSのカンマ演算子は配列を作り、配列の要素が複数なら内容問わず真になる
そもそもカンマでの結合はORなのかANDなのか意図が曖昧
仕様としても微妙だしバッドプラクティスに思える
997(2): 2018/10/09(火)17:47 ID:G4IJkzod(2/3) AAS
次スレ
PowerShell -Part 3
2chスレ:tech
998: 2018/10/09(火)18:41 ID:iKGY38Kd(1) AAS
>>997
乙
前に同じ名前のスレが落ちてたけどこの板は保守が要るってことかな?
999: 2018/10/09(火)21:10 ID:PXd6fmY+(1) AAS
>>994-997
ありがとう
1000: 2018/10/09(火)21:31 ID:G4IJkzod(3/3) AAS
(1..1000 |% {if ($_ -eq 1000) {write-output "1000 complete!"} else { write-output $_}}) -join " "
1001(1): 1001 Over 1000 Thread AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 682日 15時間 1分 1秒
1002(1): 1002 Over 1000 Thread AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
省4
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.216s*