【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
これで十分
#Requires -Version 5
if ($PSVersionTable.PSEdition -eq 'Core') {
throw 'Powershell Coreでは動作しません。'
} 「マニュアル?あぁ読んでないわ。とにかく直しといてね」 >>940
「なんか 動作しません て出るんだけど?直しといてね」 「対応するなら○○万円(鬱陶しい顧客リスク分を上乗せして)頂戴します。」
断るならブラック顧客だから切るべし。
断れないならブラック企業だから転職。 >>943
突っぱねるだけじゃなく、妥協点を見出す、Fail safe, Fool proof ってのも重要なことだよ。
まあ個人のポリシーだから好きにすればいいけど。 マニュアル書くにしたって、「エラーメッセージが出ます」と一言で説明するだけじゃ不十分
「『ver5環境では動作しません』というメッセージが表示されます。この場合...」と一字一句再現してやらないとわけわからなくなる人が山のようにいるのでね
ウィンドウの背景色やフレームの色まで画像付きで説明されてないと理解できない人もいるし
舐めてると死ぬぞ 会計ソフトを出したら、それを買った客が、簿記・会計処理のことを聞いてくるw
女が電話に出ると、何時間でも粘るw
そういう客もいる >>947
それ、チャンスじゃん。
サポート料を時間当たりいくらと決めとけば良い。 >>947
全然関係ないけど昔生理用品メーカーに納入した機器の入れ替えに行った時に聞いた話だと、お客さんからの問い合わせ(多分クレーム)で長い時は3時間とかかかるって言ってた 結局こんなふうにしたよ
https://pastebin.com/9RWLpSC7
>>928
ありがとうごさいました!
ほかの皆さんもありがとうございました! powershellにはbuild toolないのか >>954
PowerShellでWeb API作る需要あるのかな >>956
自分の場合だけど、Windows の EC2 インスタンスと連携するプログラムを Lambda 上で
作る案件がちょくちょくあって、これまでは Windows 上は PowerShell、Lambda のほうは
P{ython で作ることが多かった。
だけど自分のスキルのせいもあって、PowerShell と Python のコーディングを同時並行で進めると
色々と混乱することが少なくなかったのね。
# 両方 Python で作れば、と思うかもしれんけど、運用の手間を考えると、
# 追加でインストールするものはなるべく少なくしたい
それが、Lambda で PowerShell Core が使えるなら PowerShell で統一できるので、
個人的にすごく捗るな、と。 class構文じゃなくて本物の型を定義したい場合にはAdd-Typeしかないのかな
GUI作るときにPSObjectがうまくデータバインドできなくて困った https://news.mynavi.jp/itsearch/article/hardware/4054
Powershell6.1で大分パフォーマンス上がったみたいね
パフォーマンス以外に起動も結構早くなった感じ Macだからかもしれない
Macでの実行環境は最適化する余地が大きく残ってたとかがあり得る
Windowsでどうかは比較してみないとなんとも psわざわざ入れるって無理だな
有り物使うだけだからOSアプデで付くのを待つしかない PowershellはOSによってプリインストールバージョン違うの地味に面倒だな
MS Updateで5.0までは強制的にアップデートしてくれないかな
客先のサーバでSQLモジュールも入って無くてInstall-moduleも入って無くてスクリプト使えなくて困ったわ 2.0ベースでなんとかするテクニックは必須ですよね テクニックって程のものって何かある?
使える使えないの差ぐらいじゃないの 再来年1月にはPowershell2.0プリインストール環境が終了するから2.0に合わせた書き方頑張る気力がイマイチ
Windows7とか2008R2は早く死んでくれないかな Windows7とか2008R2は最後のまともなバージョン >>967
SP1入れずに使ってる環境なんてほぼ無いだろ?なら4.0覚えときゃOK
個人的にはzipクラスがある4.5が望ましい とりあえず3.0以降じゃないとちょっと辛いイメージ 3.0以降じゃないとPsCustomObject使えないとか、コマンドレット充実してなくてNETライブラリ使う羽目になって、もうこれC#で書いたほうが良くね?になるあたりかね coreに移行して大分経ってからGet-ScheduledTaskとかのWindows専用っぽいコマンドレット無くなってるのに気付いた
まあこれはあんまり使わんしpowershell.exeで実行すりゃいいか where-objectでフィルタをかける時、複数条件が必要な場合は
パイプでつなぐしかないですかね?andとかあればいいんですけど
where-object 条件1 | where-object 条件2 論理演算子はもちろんあります
-and -orなど >>975
サンプルだと
? {$arg -eq "test" -or $arg2 -eq "test"}
みたいな感じ
-使う演算子が繋がって違和感あるかもしれんけど そもそもカンマでcriteraの文字列を区切ればor指定になるのでは >>978
どゆこと?
$arg -eq "test1","test2"
とかやってもならないけど パワーシェル内でパワーシェルを呼び出す時、どのパワーシェルの処理が成功してるか失敗してるかわかるようにログ出すのはどうすればいいんでしょうか? argsでIDを渡すとか
powershell -command { "ID: $($args[0])"} -args 777 バッチファイルみたいにリダイレクトではログ渡せないのかな?
2>1
みたいなかんじで? $?で前回のコマンドの実行結果
$lastexitcodeにexitコマンドで返された値が入る(呼び出したスクリプトはexitに戻り値を付けて終了させないとダメ)
$?だとスクリプト内の最後のコマンドの結果が帰るからスクリプトの作りによっては失敗の判定は出来ないのはバッチとかと一緒 なるほど
呼び出すスクリプト内にエラーコードで正常か異常か$?で判定させてそれをifかなんかで分岐させてエラーコードを呼び出し元のスクリプトの$lastexitcodeをehcoする感じですかね? >>980
成否判定ならこれでよくね
hoge.ps1
$hoge = $true
if($hoge){exit 1}
exit 0
-------------
$ps = Start-Process hoge.ps1 -Wait -PassThru
switch($ps.ExitCode) {
0 {
"失敗"
}
1 {
"成功"
}
} これを呼び出すスクリプト全部に書くってこと?
呼び出し元と先が複数あって、先を全部修正するのが大変なので出来れば元だけで完結させたい
が、無理そうなのでこれを全てに書いていく? >>990
0で戻ってきたらokにでもすれば
いじらんで良いやろ >>990
exitで成否を戻した方がしっかり判定できる
呼び出したスクリプトで何が発生したら失敗とするかをしっかり判定しないの?
結果コードでの判定とか曖昧すぎてトラブルの元と思う >>984
実際にやりたいことがわからないけどエラーメッセージをリダイレクトするだけなら同じようにできるよ
powershell ./hoge.ps1 2>>log.txt >>979
知らないけど、switch 文で、カンマを使うとか?
そういう意味じゃないの? >>979
-inならいけるけど、まあ違うんだろうな
dir | where { $_.name -in "a1.txt","a2.txt","b1.txt" }
$list = @( "a1.txt","a2.txt","b1.txt" )
dir | where { $_.name -in $list } >>979
適当こいただけじゃないのかな
PSのカンマ演算子は配列を作り、配列の要素が複数なら内容問わず真になる
そもそもカンマでの結合はORなのかANDなのか意図が曖昧
仕様としても微妙だしバッドプラクティスに思える >>997
乙
前に同じ名前のスレが落ちてたけどこの板は保守が要るってことかな? (1..1000 |% {if ($_ -eq 1000) {write-output "1000 complete!"} else { write-output $_}}) -join " " このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 682日 15時間 1分 1秒 レス数が1000を超えています。これ以上書き込みはできません。