【最強CUI】PowerShell -Part 2at TECH
【最強CUI】PowerShell -Part 2 - 暇つぶし2ch979:デフォルトの名無しさん
18/09/09 13:48:43.10 b90Mhdwq.net
そういう能書きが書いてあっても何のこっちゃ分からんという人に配布しなきゃいけない場合もあるからなぁ
お客さんに運用対応を要求するのも大変なことだし

980:デフォルトの名無しさん
18/09/09 14:14:36.64 R8hBsgvF.net
>>937はこの手の仕事したことないんだろ
マニュアル書いても
「ver5環境ってなんだ?」
とか、そもそも説明なんて読んでなくて
「うまく動かないので至急なんとかしてください」
って言われるだけのこと

981:デフォルトの名無しさん
18/09/09 14:39:06.98 DLS5Iddq.net
これで十分
#Requires -Version 5
if ($PSVersionTable.PSEdition -eq 'Core') {
throw 'Powershell Coreでは動作しません。'
}

982:デフォルトの名無しさん
18/09/09 14:42:48.50 0y2Fjk63.net
「マニュアル?あぁ読んでないわ。とにかく直しといてね」

983:デフォルトの名無しさん
18/09/09 14:47:33.78 0y2Fjk63.net
>>940
「なんか 動作しません て出るんだけど?直しといてね」

984:デフォルトの名無しさん
18/09/09 15:19:04.80 DLS5Iddq.net
「対応するなら○○万円(鬱陶しい顧客リスク分を上乗せして)頂戴します。」
断るならブラック顧客だから切るべし。
断れないならブラック企業だから転職。

985:デフォルトの名無しさん
18/09/09 15:28:45.97 D8J39mU4.net
>>943
突っぱねるだけじゃなく、妥協点を見出す、Fail safe, Fool proof ってのも重要なことだよ。
まあ個人のポリシーだから好きにすればいいけど。

986:デフォルトの名無しさん
18/09/09 15:31:06.93 //bKOaXP.net
無職の妄想かよ w

987:デフォルトの名無しさん
18/09/09 15:47:36.82 jqHbfRUC.net
マニュアル書くにしたって、「エラーメッセージが出ます」と一言で説明するだけじゃ不十分
「『ver5環境では動作しません』というメッセージが表示されます。この場合...」と一字一句再現してやらないとわけわからなくなる人が山のようにいるのでね
ウィンドウの背景色やフレームの色まで画像付きで説明されてないと理解できない人もいるし
舐めてると死ぬぞ

988:デフォルトの名無しさん
18/09/09 20:12:23.17 0ym3cmgA.net
会計ソフトを出したら、それを買った客が、簿記・会計処理のことを聞いてくるw
女が電話に出ると、何時間でも粘るw
そういう客もいる

989:デフォルトの名無しさん
18/09/09 20:24:13.14 H4RfJ3jl.net
>>947
それ、チャンスじゃん。
サポート料を時間当たりいくらと決めとけば良い。

990:デフォルトの名無しさん
18/09/09 20:59:40.12 //bKOaXP.net
>>947
全然関係ないけど昔生理用品メーカーに納入した機器の入れ替えに行った時に聞いた話だと、お客さんからの問い合わせ(多分クレーム)で長い時は3時間とかかかるって言ってた

991:934
18/09/10 17:56:21.73 0jDkILQ9.net
結局こんなふ


992:うにしたよ https://pastebin.com/9RWLpSC7 >>928 ありがとうごさいました! ほかの皆さんもありがとうございました!



993:デフォルトの名無しさん
18/09/12 08:25:50.66 HwQfxVDT.net
Verifying PowerShell versions…let me count the ways
URLリンク(blogs.technet.microsoft.com)

994:デフォルトの名無しさん
18/09/14 07:52:52.25 itNItVhP.net
powershellにはbuild toolないのか

995:デフォルトの名無しさん
18/09/14 09:15:39.59 u+Z35nAl.net
Announcing PowerShell Core 6.1
URLリンク(blogs.msdn.microsoft.com)

996:デフォルトの名無しさん
18/09/14 10:16:47.60 60Mnn9Dg.net
これは朗報だ!
---------
AWS Lambda は PowerShell Core をサポートします
URLリンク(aws.amazon.com)

997:デフォルトの名無しさん
18/09/14 12:28:03.19 Z7a8n8W6.net
6.1日本語使えない?

998:デフォルトの名無しさん
18/09/14 13:01:26.89 /Xr9NdPd.net
>>954
PowerShellでWeb API作る需要あるのかな

999:デフォルトの名無しさん
18/09/14 14:27:05.47 60Mnn9Dg.net
>>956
自分の場合だけど、Windows の EC2 インスタンスと連携するプログラムを Lambda 上で
作る案件がちょくちょくあって、これまでは Windows 上は PowerShell、Lambda のほうは
P{ython で作ることが多かった。
だけど自分のスキルのせいもあって、PowerShell と Python のコーディングを同時並行で進めると
色々と混乱することが少なくなかったのね。
# 両方 Python で作れば、と思うかもしれんけど、運用の手間を考えると、
# 追加でインストールするものはなるべく少なくしたい
それが、Lambda で PowerShell Core が使えるなら PowerShell で統一できるので、
個人的にすごく捗るな、と。

1000:デフォルトの名無しさん
18/09/16 13:14:02.90 16Y59QgZ.net
class構文じゃなくて本物の型を定義したい場合にはAdd-Typeしかないのかな
GUI作るときにPSObjectがうまくデータバインドできなくて困った

1001:デフォルトの名無しさん
18/09/28 12:50:16.79 8vtXqMhV.net
URLリンク(news.mynavi.jp)
Powershell6.1で大分パフォーマンス上がったみたいね
パフォーマンス以外に起動も結構早くなった感じ

1002:デフォルトの名無しさん
18/09/28 13:35:11.01 oUAtTcYe.net
Macだからかもしれない
Macでの実行環境は最適化する余地が大きく残ってたとかがあり得る
Windowsでどうかは比較してみないとなんとも

1003:デフォルトの名無しさん
18/09/28 15:32:47.04 ExWLpVS+.net
psわざわざ入れるって無理だな
有り物使うだけだからOSアプデで付くのを待つしかない

1004:デフォルトの名無しさん
18/10/05 17:32:43.04 LWyIHUF+.net
PowershellはOSによってプリインストールバージョン違うの地味に面倒だな
MS Updateで5.0までは強制的にアップデートしてくれないかな
客先のサーバでSQLモジュールも入って無くてInstall-moduleも入って無くてスクリプト使えなくて困ったわ

1005:デフォルトの名無しさん
18/10/05 20:42:27.53 OkuzM4NB.net
今の10の1803ってバージョン何が入ってるの

1006:デフォルトの名無しさん
18/10/05 21:07:07.34 YbvjOj4C.net
5.1

1007:デフォルトの名無しさん
18/10/06 10:44:13.46 fld0/WcD.net
2.0ベースでなんとかするテクニックは必須ですよね

1008:デフォルトの名無しさん
18/10/06 14:33:29.33 gea8Zy97.net
テクニックって程のものって何かある?
使える使えないの差ぐらいじゃないの

1009:デフォルトの名無しさん
18/10/06 16:17:11.73 J00E9zwo.net
再来年1月にはPowershell2.0プリインストール環境が終了するから2.0に合わせた書き方


1010:頑張る気力がイマイチ Windows7とか2008R2は早く死んでくれないかな



1011:デフォルトの名無しさん
18/10/06 16:48:11.63 h/HmdYY4.net
Windows7とか2008R2は最後のまともなバージョン

1012:デフォルトの名無しさん
18/10/06 21:18:07.69 MlTlM5yZ.net
Windows 2000 Proが一番良かった。

1013:デフォルトの名無しさん
18/10/06 23:10:20.08 tgEP6apu.net
>>967
SP1入れずに使ってる環境なんてほぼ無いだろ?なら4.0覚えときゃOK
個人的にはzipクラスがある4.5が望ましい

1014:デフォルトの名無しさん
18/10/06 23:21:17.76 SoS+Fgug.net
とりあえず3.0以降じゃないとちょっと辛いイメージ

1015:デフォルトの名無しさん
18/10/07 00:45:26.55 /+/kkqPE.net
何が辛いんだい
ほら言ってごらん

1016:デフォルトの名無しさん
18/10/07 00:51:14.63 KvcjzmFM.net
3.0以降じゃないとPsCustomObject使えないとか、コマンドレット充実してなくてNETライブラリ使う羽目になって、もうこれC#で書いたほうが良くね?になるあたりかね

1017:デフォルトの名無しさん
18/10/07 02:34:13.34 MeohIHbL.net
coreに移行して大分経ってからGet-ScheduledTaskとかのWindows専用っぽいコマンドレット無くなってるのに気付いた
まあこれはあんまり使わんしpowershell.exeで実行すりゃいいか

1018:デフォルトの名無しさん
18/10/07 06:17:50.14 mFTX0OZ0.net
where-objectでフィルタをかける時、複数条件が必要な場合は
パイプでつなぐしかないですかね?andとかあればいいんですけど
where-object 条件1 | where-object 条件2

1019:デフォルトの名無しさん
18/10/07 06:44:39.40 MeohIHbL.net
論理演算子はもちろんあります
-and -orなど

1020:デフォルトの名無しさん
18/10/07 10:50:24.18 VwaVbKnV.net
>>975
サンプルだと
? {$arg -eq "test" -or $arg2 -eq "test"}
みたいな感じ
-使う演算子が繋がって違和感あるかもしれんけど

1021:デフォルトの名無しさん
18/10/07 11:44:45.71 I8sm2uyS.net
そもそもカンマでcriteraの文字列を区切ればor指定になるのでは

1022:デフォルトの名無しさん
18/10/07 21:44:12.84 /+/kkqPE.net
>>978
どゆこと?
$arg -eq "test1","test2"
とかやってもならないけど

1023:デフォルトの名無しさん
18/10/08 20:48:01.10 7Fv0bXJp.net
パワーシェル内でパワーシェルを呼び出す時、どのパワーシェルの処理が成功してるか失敗してるかわかるようにログ出すのはどうすればいいんでしょうか?

1024:デフォルトの名無しさん
18/10/08 21:56:04.04 sIA/07pT.net
>>980
スクリプトの名前等を頭につけるとか

1025:デフォルトの名無しさん
18/10/08 22:04:42.09 7Fv0bXJp.net
ごめん。全然わからん・・・

1026:デフォルトの名無しさん
18/10/08 22:05:00.95 vQC6HMz5.net
argsでIDを渡すとか
powershell -command { "ID: $($args[0])"} -args 777

1027:デフォルトの名無しさん
18/10/08 22:19:23.32 7Fv0bXJp.net
バッチファイルみたいにリダイレクトではログ渡せないのかな?
2>1
みたいなかんじで?

1028:デフォルトの名無しさん
18/10/08 23:19:17.74 nFrei6GD.net
$?で前回のコマンドの実行結果
$lastexitcodeにexitコマンドで返された値が入る(呼び出したスクリプトはexitに戻り値を付けて終了させないとダメ)
$?だとスクリプト内の最後のコマンドの結果が帰るからスクリプトの作りによっては失敗の判定は出来ないのはバッチとかと一緒

1029:デフォルトの名無しさん
18/10/08 23:24:06.69 7Fv0bXJp.net
なるほど
呼び出すスクリプト内にエラーコードで正常か異常か$?で判定させてそれをifかなんかで分岐させてエラーコードを呼び出し元のスクリプトの$lastexitcodeをehcoする感じですかね?

1030:デフォルトの名無しさん
18/10/08 23:32:12.23 rY44Et0R.net
>>979に答えてくれないか

1031:デフォルトの名無しさん
18/10/08 23:41:24.75 GVMVzq1c.net
>>980
成否判定ならこれでよくね
hoge.ps1
$hoge = $true
if($hoge){exit 1}
exit 0
-------------
$ps = Start-Pr


1032:ocess hoge.ps1 -Wait -PassThru switch($ps.ExitCode) { 0 { "失敗" } 1 { "成功" } }



1033:デフォルトの名無しさん
18/10/08 23:44:14.86 L+98sdt+.net
「どの」を見落としてる

1034:デフォルトの名無しさん
18/10/08 23:45:52.94 7Fv0bXJp.net
これを呼び出すスクリプト全部に書くってこと?
呼び出し元と先が複数あって、先を全部修正するのが大変なので出来れば元だけで完結させたい
が、無理そうなのでこれを全てに書いていく?

1035:デフォルトの名無しさん
18/10/08 23:55:10.73 GVMVzq1c.net
>>990
0で戻ってきたらokにでもすれば
いじらんで良いやろ

1036:デフォルトの名無しさん
18/10/09 00:01:31.08 G4IJkzod.net
>>990
exitで成否を戻した方がしっかり判定できる
呼び出したスクリプトで何が発生したら失敗とするかをしっかり判定しないの?
結果コードでの判定とか曖昧すぎてトラブルの元と思う

1037:デフォルトの名無しさん
18/10/09 00:57:32.40 VXCTyrZC.net
>>984
実際にやりたいことがわからないけどエラーメッセージをリダイレクトするだけなら同じようにできるよ
powershell ./hoge.ps1 2>>log.txt

1038:デフォルトの名無しさん
18/10/09 03:31:08.27 0K1bBeTL.net
>>979
知らないけど、switch 文で、カンマを使うとか?
そういう意味じゃないの?

1039:デフォルトの名無しさん
18/10/09 05:18:39.42 06HomXwK.net
>>979
-inならいけるけど、まあ違うんだろうな
dir | where { $_.name -in "a1.txt","a2.txt","b1.txt" }
$list = @( "a1.txt","a2.txt","b1.txt" )
dir | where { $_.name -in $list }

1040:デフォルトの名無しさん
18/10/09 08:24:03.86 2kAOJdzZ.net
>>979
適当こいただけじゃないのかな
PSのカンマ演算子は配列を作り、配列の要素が複数なら内容問わず真になる
そもそもカンマでの結合はORなのかANDなのか意図が曖昧
仕様としても微妙だしバッドプラクティスに思える

1041:デフォルトの名無しさん
18/10/09 17:47:31.12 G4IJkzod.net
次スレ
PowerShell -Part 3
スレリンク(tech板)

1042:デフォルトの名無しさん
18/10/09 18:41:58.03 iKGY38Kd.net
>>997

前に同じ名前のスレが落ちてたけどこの板は保守が要るってことかな?

1043:デフォルトの名無しさん
18/10/09 21:10:27.51 PXd6fmY+.net
>>994-997
ありがとう

1044:デフォルトの名無しさん
18/10/09 21:31:03.39 G4IJkzod.net
(1..1000 |% {if ($_ -eq 1000) {write-output "1000 complete!"} else { write-output $_}}) -join " "

1045:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 682日 15時間 1分 1秒

1046:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch