1 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 17:46:48.32 ID:G4IJkzod.net] 前スレ 【最強CUI】PowerShell -Part 2 mevius.5ch.net/test/read.cgi/tech/1480109402/
152 名前:デフォルトの名無しさん [2018/11/01(木) 06:23:45.61 ID:mmcP2r/K.net] >>14
153 名前:9 >Java のStream とか、C# のLinq みたいな感じ まさにLinqの形なんですね。C#でLinq使ってみて、もしかして・・・と思って テストしてみたい次第。 >>150 foreach速いのかな? 逆にすげー遅いんじゃないかと思ってだんたけど、どうなんだろう。 場合によると、それはforに対するforeachの話かもしれない。 ちょっとデータが大きくなると、利用していなかったけど、少しくらい大きい ものなら、PowerShell結構使い物になることが分かったので、ツール作ろうかと 思って来ましたよ。コマンドレットを独自に作れば結構なことが出来そう。 [] [ここ壊れてます]
154 名前:デフォルトの名無しさん [2018/11/01(木) 06:25:15.55 ID:mmcP2r/K.net] >>149 >まさにLinqの形なんですね。C#でLinq使ってみて、もしかして・・・と思って >テストしてみたい次第。 間違った 「テストしてみた次第」
155 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 09:18:53.50 ID:xoDC1qBI.net] 遅延実行とパイプラインは違うよ 遅延実行はオンデマンドの処理で、並行処理になるか一括実行になるかは無関係 イメージとしてはプロキシ パイプは次を待たずに通常バッファリングされながら並行処理されるもの イメージはCPUの命令パイプラインそのもの
156 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 09:21:29.14 ID:NMd92bWG.net] >>151 確かここのサイト tech.guitarrapc.com/entry/2013/03/09/010335 Powershell3.0での結果らしい forとforeachとforeach-object(パイプライン使用)とかの比較 データサイズやら構造で違いはありそう .foreach()メソッドでも動作は変わるらしい foreachだけでコマンド、フィルター、メソッドと3種類あるとか自分にはついていけなかった
157 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 09:40:09.66 ID:NMd92bWG.net] >>153 わかってなかったわ 遅延実行やら並行処理やらの勉強やら検証方法やら勉強して出直さないとダメだなぁ
158 名前:デフォルトの名無しさん [2018/11/01(木) 09:48:43.50 ID:mmcP2r/K.net] >>154 あ〜、これは今回の参考にならないかも わたしも、ずっと似たような考えをしていたんですよ。 このサイトの例では、一度変数に入れてから、別な処理を 行うという処理なので、遅延実行がされていないです。 私がやったのは、コマンドレットをまたいで遅延実行を してくれているのだと気が付いてやってみたという例なので。
159 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 19:18:42.62 ID:qmW4m+8w.net] >>143 >>144 ありがとうございます。 動きました。 願わくば、タイトルバーのフォントも変えたかったのですが おそらく無理ですよね。
160 名前:デフォルトの名無しさん [2018/11/01(木) 21:15:55.85 ID:PBz6MbCm.net] Ruby では、Enumerator::Lazy で、無限リストを遅延処理できる (1..Float::INFINITY).lazy.map{ |n| n*2 }.first(5) # => [2, 4, 6, 8, 10] これをLazyなしだと、先に無限配列を実体化しようとして、フリーズする (1..Float::INFINITY).map{ |n| n*2 }.first(5) # => (実行が終わらない...)
161 名前:デフォルトの名無しさん [2018/11/01(木) 22:34:36.78 ID:j6Caq374.net] >>158 Rubyの場合も、PowerShellのように、複数のモジュール(PowerShellの場合だとCmdletやスクリプト)をつなげば連動して遅延実行してくれるのでしょうか。 Rubyの方が遅延実行は先駆ということは書かれていたけど。 使うことはないけれども知識として。
162 名前:デフォルトの名無しさん [2018/11/01(木) 22:35:45.48 ID:j6Caq374.net] その無限リストというのが、その話なのかな?
163 名前:158 mailto:sage [2018/11/01(木) 23:09:51.35 ID:PBz6MbCm.net] Ruby では、内部イテレータのEnumerable と、外部イテレータのEnumerator がある Enumeratorをメソッドチェーンしている間は、リストが実体化されないから、 Enumeratorで続けていって、最後に実体化する 内部イテレータは、イテレータ自身が繰り返し制御を行う。 一方、外部イテレータは、ユーザーが繰り返し制御を行う 外部イテレータでは、2つの配列を1つずつ進めたり、カスタマイズできる
164 名前:デフォルトの名無しさん [2018/11/01(木) 23:16:50.68 ID:j6Caq374.net] C#と同じような感じだね 今回はPowerShellで遅延実行すると同じく 実体化されずに次の処理に渡ることが分かったので こんどはコマンドレットを作ってみようと思う。
165 名前:デフォルトの名無しさん [2018/11/02(金) 19:41:44.34 ID:mjKfpvc8.net] 19,000,000件、20項目のCSVをimpo-csvで読んで、 group-objectで8x8のクロス集計したら どうも読んでいる途中でおかしくなったようだ。 原因を探らんと・・・・。 800万件では問題なかったんだが。
166 名前:デフォルトの名無しさん [2018/11/02(金) 22:59:49.69 ID:KoqyjIsr.net] インポならオマエのチンポがおかしい
167 名前:デフォルトの名無しさん mailto:sage [2018/11/03(土) 21:38:47.42 ID:0juc4OvK.net] 遅延実行と聞くとコマンドプロンプトのforが思い浮かぶね しかし遅延実行じゃなくて困ったことはあるがその逆は無い 遅延実行じゃないほうって何かメリットあるの?
168 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 01:00:07.52 ID:EZKDDV0E.net] 遅延実行もsetlocalのオプションで即時展開できるやん
169 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 16:26:31.91 ID:64s9hY5n.net] リモートデスクトップ接続元がわかる方法ないかな? クライアントPC名、ログインユーザー名、ipを見たいんだけど… 調べたらPSTerminalServicesってモジュールで出来るらしい記事があったんだけどもうインストーラー配布してないみたいで手詰まりです。
170 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 16:30:58.01 ID:Y6Npd9Sa.net] それPowershellと関係ないだろ
171 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 16:33:27.61 ID:64s9hY5n.net] すいませんでした
172 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 17:01:30.70 ID:lW8FLp9M.net] >>167 https://powershelladministrator.com/2015/12/01/get-logged-on-users-and-sessions/ Get-RDUserSession |fl * で拾えるとは思うから接続元プロパティ名わかったらselect-object UserName,(接続元のプロパティ名) とかやってみて
173 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 17:04:41.31 ID:64s9hY5n.net] >>170 ありがとうございます! 早速使ってみたいと思います! スレ汚しすいませんでした。
174 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 17:04:49.71 ID:lW8FLp9M.net] >>168 PowershellとWindowsサービス管理用コマンドレットは関係有りまくり
175 名前:デフォルトの名無しさん [2018/11/07(水) 19:32:24.46 ID:5rQxDZaK.net] たしかに もともと、PowerShellが出てきた目的の世界だね
176 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 21:28:10.26 ID:0cfzNL20.net] でもここはプログラム板なので
177 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 21:30:12.65 ID:M3d0NYL/.net] >>174 Windows板にこのスレがない時点で意味ない
178 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 06:31:15.25 ID:zJM3NQZE.net] Windows PowerShell Part5 https://mevius.5ch.net/test/read.cgi/win/1474175184/
179 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:01:36.92 ID:V62EYj3k.net] FizzBuzz 42文字でかけた 1..100|%{"$_`r"+{fizz}[$_%3]+{buzz}[$_%5]}
180 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 20:47:10.72 ID:V62EYj3k.net] >>177 キャリッジリターンで上書きしてるだけなのでやや反則か 文字列長は(数字桁+1)文字されてる
181 名前:デフォルトの名無しさん mailto:saeg [2018/11/11(日) 03:17:15.29 ID:v3JXSoAX.net] >>177 シンプルで美しい
182 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 07:15:18.30 ID:tAZC+CW3.net] スクリプトブロックに[0]添字で値参照て技があるのか配列なら分かるけどなんか不思議
183 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 10:05:51.56 ID:3JRsWB+V.net] PowerShellは配列の扱いがかなり独特 単なる数値でも配列扱いすると要素1つだけの配列みたいに振舞う $a = 1 $a[0] ⇒ 1 $a[1] ⇒ $null まあ>>177 はよく思いついたなって思う
184 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 10:15:59.49 ID:xoHShG4l.net] まず{fizz}が文字列になるという部分から読めなかった
185 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 12:45:53.82 ID:xpOIALoe.net] バグみたいな仕様だな バグだな
186 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 15:05:07.40 ID:msMOLK59.net] powershell -v 2だと動かないな PowerShell 3.0で配列じゃない
187 名前:変数も要素を取得できるようになったから動く バグではないっぽい [] [ここ壊れてます]
188 名前:デフォルトの名無しさん [2018/11/11(日) 18:49:56.37 ID:/HpWdlpY.net] スクリプトブロックでしょ
189 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 19:06:06.81 ID:Fk6I1vC1.net] 事務の仕事で、ファイル処理とかテキスト処理のため、たまにPowerShellを使ってます 挙動の予測ができずトライアンドエラーをする機会がVBAなどより少し多くて 素人にはちょっと難しいのかなあと思ってたのですが 理解不能な技>>177 を見て、使いこなせる自信がますます無くなりました
190 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 19:37:24.70 ID:xpOIALoe.net] >>184 {abc}[0] #=>abc これがわかんない スクリプトブロックで囲むと、なんでabcはエラーにならないの? 普通にabcとやったらコマンドレットじゃないってエラー出るのに
191 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 19:39:58.14 ID:JFNgNrbU.net] スクリプトブロックを文字列にキャストすると中身が実行されずに中のコードがそのまま文字列になる つまり [string]{ fizz } が暗黙になされてるだけ
192 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 20:33:31.13 ID:tAZC+CW3.net] その説明もピンと来ないが &[fizz] や $hoge={Fizz};&$hoge とすればちゃんとエラーになる。 未実行のスクリプトブロックは一種のヒア文字列扱いとなるということなんだろうか…
193 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 20:34:21.67 ID:tAZC+CW3.net] &{fizz} だったすまん
194 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 20:43:37.28 ID:tAZC+CW3.net] powershell -v 2のエラーメッセージ "型 System.Management.Automation.ScriptBlock のオブジェクトにインデックスを付けることはできません。" わかるw
195 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 21:03:13.85 ID:xpOIALoe.net] { abc def ghi} #=> abc def ghi なんか{}でかこまれた部分がそのまま文字列になってる なにこれぇ
196 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 21:26:24.30 ID:v3JXSoAX.net] 1..100|%{"$_`r"+{fizz}[$_%3]+{buzz}[$_%5]} 1..100 # 範囲演算子で1から100までのint[]を生成 | # パイプ演算子 % # Foreach-Object { # スクリプトブロック開始(%の引数) " # 文字列開始(二重引用符の中ではエスケープシーケンスが展開される) $_ # パイプラインの入力を受け取る自動変数 `r # Carriage returnのエスケープシーケンス。後に続く文字で前の文字を上書きする(なにもない場合上書き無し) " # 文字列終了→string型 + # 加算演算子(左辺がstring型なので右辺をstring型にキャストする) { # スクリプトブロック開始 fizz # コマンド/関数名fizzとして解釈されるがスクリプトブロック内なので実行されない } # スクリプトブロック終了→ScriptBlock型 [ # []演算子で左辺を要素数1の配列としてアクセスする。 $_%3 # 配列のインデックス。%(剰余)演算子でパイプラインの入力$_を3で割る ] # 上の結果が0(→3の倍数)の場合のみスクリプトブロックの要素にアクセス、1以上の場合$null + # 加算演算子(左辺がstring型なので右辺をstring型にキャストする)。 {buzz}[$_%5] # fizzと同じ。結果としてstringが評価されコンソールに出力される } #スクリプトブロック終了。
197 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 21:55:09.88 ID:JFNgNrbU.net] >>189 単にスクリプトブロック型のオブジェクトが中身の生コードを持ってるだけやろ {fizz}.ToString() しても同じ ToString()でどういう値を返すかはオブジェクトの種類によって違う &やコンマやInvokeしたときに初めてスクリプトブロック型オブジェクトが持ってるコードが評価される
198 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 22:21:33.88 ID:JFNgNrbU.net] ちょっと舌足らずだった スクリプトブロック型はToString()したときに 内部に文字列としてもってる生コードを返すってことが言いたかった 実際ソースを読んでるわけじゃないけど
199 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 23:20:57.99 ID:xpOIALoe.net] スクリプトブロックは&で評価されるまで中身何もチェックされないみたいですね 一応動作は理解しましたがなんていい加減な言語なんだろ こんなのどこにも書いてないし今後仕様変わる可能性はありそうですね ありがとうございました
200 名前:デフォルトの名無しさん mailto:sage [2018/11/12(月) 00:58:57.83 ID:3c4TyDT9.net] こんなのは常識的に理解できる範囲や パイプラインを考慮した関数をちゃんと作ろうと思ったら頭おかしなるで
201 名前:デフォルトの名無しさん [2018/11/12(月) 06:17:57.42 ID:gZOE16Sc.net] >>193 たいへんに、ありがとうごわす
202 名前:デフォルトの名無しさん mailto:sage [2018/11/12(月) 20:33:57.05 ID:kM9Cc8DJ.net] まさにシェル芸
203 名前:デフォルトの名無しさん [2018/11/12(月) 20:51:57.60 ID:ZJicw3nv.net] しかし、以前に比べて 投稿される内容が良くなってきたね かつては『○○と比べてなんら』とか そういう投稿ばかりだったもんね。
204 名前:デフォルトの名無しさん mailto:sage [2018/11/12(月) 21:10:04.82 ID:AMbuBroP.net] シェル芸ならこんなところ seq 100|sed 's/.*5$/Buzz/;3~3s/[0-9]*/Fizz/'
205 名前:デフォルトの名無しさん [2018/11/12(月) 23:49:46.46 ID:ZJicw3nv.net] どちらにしても、見てもわからないね
206 名前:デフォルトの名無しさん mailto:sage [2018/11/13(火) 05:49:15.96 ID:xWZc78Mp.net] 知恵を絞って短縮コードを目指すから、理解容易ではないのはまあ仕方ない
207 名前:デフォルトの名無しさん mailto:sage [2018/11/13(火) 08:37:24.02 ID:6YAdmBBQ.net] 3.0からの文法でできるならだれか思いついてそうだったけど検索しても出てこないな Anarchy GolfにはPowerShell無いし、StackExchangeで58byte、牟田口氏のコードで51byte いろいろテクニックが載ってて面白い what is your fave PoSh version of FizzBuzz? : PowerShell https://www.reddit.com/r/PowerShell/comments/6r06hg/what_is_your_fave_posh_version_of_fizzbuzz/ code golf - Tips for golfing in PowerShell - Programming Puzzles & Code Golf Stack Exchange https://codegolf.stackexchange.com/questions/191/tips-for-golfing-in-powershell?page=2&tab=votes#tab-top
208 名前:デフォルトの名無しさん [2018/11/13(火) 18:05:14.16 ID:hYk6FFU0.net] IDがバーベキューだね
209 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 08:50:21.40 ID:PFpyL5+w.net] PowerShell Core 6.1.0で日本語が正しく表示されない現象について https://blog.shibata.tech/entry/2018/11/13/202031
210 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 09:25:00.49 ID:JBsUV7Ak.net] >>206 teratailの質問がトリガーでした https://teratail.com/questions/157003
211 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 14:34:06.24 ID:REddJKuq.net] PowerShell で全角文字を入力すると表示がおかしくなる問題について https://blogs.technet.microsoft.com/askcorejp/2018/11/14/powershell-で全角文字を入力すると表示がおかしくなる問/
212 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 20:33:58.55 ID:JBsUV7Ak.net] ISEは問題ないのに、普通のシェルがダメって何年放置されてるのだろう?
213 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 21:42:06.99 ID:wbqNTVov.net] VSCodeでPowershellの色寂しくなった
214 名前:デフォルトの名無しさん [2018/11/15(木) 00:08:24.89 ID:WLDbhFjW.net] >>209 2か月じゃないか?
215 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 00:38:25.77 ID:RLOkjNth.net] 何年も放置されてるぞ
216 名前:デフォルトの名無しさん [2018/11/15(木) 00:41:50.91 ID:WLDbhFjW.net] >>212 6.0はOKで6.1がだめと書かれてる 6.1が出たのは2か月前じゃないの
217 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 04:26:11.58 ID:eQKfIPvp.net] >>208 はデスクトップ版Powershellの話Win10が出て3年かな
218 名前:デフォルトの名無しさん [2018/11/15(木) 10:35:40.03 ID:3jZ436MI.net] オプションを展開させるうまい方法ってありますか? たとえば、-WhatIfを付ける/付けないを場合分けしたいときなど。 HogeCmd fuga piyo $whatif とやると、$whatifは普通の引数になってしまうのでNG。 eval方式(コマンド全体を文字列にしてInvoke-Expressionで呼び出す)もあるけれど、 できれば、オプションのところだけうまいこと展開できればいいな、と。
219 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 13:52:20.43 ID:94uNwBee.net] スプラッティングでやるのが普通かな
220 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 15:12:55.02 ID:8dkxddcr.net] >>216 それ何?
221 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 15:25:38.96 ID:VchA8nRa.net] >>216 横からだが、スプラッティングというものを初めて知って非常に参考になった。ありがとう。
222 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 16:00:23.13 ID:4BqFdJaY.net] >>216 勉強になりました ありがとう
223 名前:デフォルトの名無しさん [2018/11/15(木) 17:07:06.05 ID:n3jFLh1o.net] >>216 サンクス
224 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 21:27:16.74 ID:cJYjGYCA.net] スプラッタのスプラッタ
225 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 22:18:43.81 ID:sPg3U71k.net] >>221 よせよ バケラッタを連呼する某アニメキャラを連想しちゃっただろ
226 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 05:17:03.39 ID:7vBGbpbo.net] スプラピスプラッタ
227 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 10:51:17.32 ID:0JdshTdX.net] Announcing General Availability of the Windows Compatibility Module 1.0.0 https://blogs.msdn.microsoft.com/powershell/2018/11/15/announcing-general-availability-of-the-windows-compatibility-module-1-0-0/
228 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 17:17:39.49 ID:h/lypBab.net] 実行ユーザーがSYSTEMな場合の COMオブジェクト利用がうまくいかないのは回避策ないでしょうか
229 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 22:04:34.76 ID:bUstU+hr.net] v6.1.1 Release of PowerShell Core https://github.com/PowerShell/PowerShell/releases/tag/v6.1.1
230 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 22:06:57.09 ID:bUstU+hr.net] v6.0.5 Release of PowerShell Core https://github.com/PowerShell/PowerShell/releases/tag/v6.0.5
231 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 22:55:21.07 ID:6qpmN5uX.net] 資格情報・認証とか? 「powershell 資格情報」で検索して
232 名前:デフォルトの名無しさん [2018/11/17(土) 06:13:16.64 ID:bZFmP2aX.net] >>225 excelとか使うとき普通に使えてるけど 何かうまくいことがあるの?
233 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 07:39:47.70 ID:tSr/NeZx.net] >>229 普通の使い方してたらSYSTEMなんかで動かすことはないからサービスとかで動かしたいとかなんだろうと思う いずれにせよ状況小出しにする奴の相手してもしょうがない
234 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 07:47:24.60 ID:gKTWKNrR.net] タスクスケジューラで動かしたいのかも。いずれにせよ具体例を書いて欲しいものだ
235 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 00:15:47.54 ID:L8Gt0pA8.net] >>221 スプラッターハウス以外思い浮かばないw
236 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 16:50:05.08 ID:g2+fQFFI.net] WindowsCompatibilityモジュール試してみたけどFormat-table用の情報とか無いから一部コマンドレットの表示が微妙 いちいちモジュール読み込まんとダメだし
237 名前:デフォルトの名無しさん [2018/11/19(月) 17:10:55.17 ID:9fApbElg.net] >>233 Fomat-Table、モジュールなしだと使えなかったの?
238 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 19:27:11.18 ID:xl/gDTc+.net] >>234 いや、そこまでの問題じゃない Format-Tableで優先表示するプロパティ情報がないだけ Format-Tableしても要らんプロパティがでてきたりする Select-objectとかしてあげれば問題ないよ
239 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 19:59:58.22 ID:Qq88xGOU.net] 暗黙のWrite-Host|ft が効かず、明示的に書かんどダメな感じ?
240 名前:デフォルトの名無しさん [2018/11/19(月) 21:26:04.01 ID:Gl33OQrV.net] 投稿がまともになってきた
241 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 16:20:10.48 ID:5fd0Mgpu.net] Effective PowerShell的な本ってないの? 普段、使う分には問題なく使えてると思う でもより上手い書き方があるのでは、良いコーディング習慣を守れてるだろうか、と自問自答すると自信を持てない
242 名前:人に見せるものでもなく、人のを見る機会もないからどうしても自己流になってしまう [] [ここ壊れてます]
243 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 22:10:45.37 ID:ZSsoDLJq.net] 本じゃないけど PowerShell のコーディングスタイル tech.guitarrapc.com/entry/2017/12/03/230119
244 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 22:36:58.28 ID:b8tU0Ani.net] 文法詳説はこの前出た貝殻本が扱ってたけど 読みにくい(演算子の説明が130ページくらいから始まる)
245 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 01:01:38.61 ID:sK2Z8lS/.net] バイナリモジュールの情報少ないよなあ github漁ってもあんまりないし コマンドレット内でGet-Item呼び出す方法探すだけでだいぶ苦労した 結局ダサいやり方になったけど
246 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 02:06:29.51 ID:mWKK19aP.net] powershell深いなあ。深すぎてちょっと目眩する時がある
247 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 03:37:58.44 ID:BKTpjWqm.net] get-netadapterとか見たいに複数の結果を返すようなクラスが作りたいんだけど どんな感じで書けばいいん? 思い浮かばねえorz
248 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 03:58:00.19 ID:wk1txPAQ.net] >>243 Function内でWrite-outputでクラスを複数回出力するとか クラスの配列を返せばいいよ
249 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 04:04:11.42 ID:BKTpjWqm.net] >>244 ちと理解できてない 例えば、get-netadapterの内容を編集して結果をだすクラスを作るとして インプットが複数なのでそれを都度かえしていくってことでいいのかな?
250 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 05:43:08.48 ID:wk1txPAQ.net] >>245 まず作りたいのはクラスじゃなくてFunction(関数)かメソッドかコマンドレット(外部関数)だよね? クラスは型であって入力と出力を持つものでは無いし Get-netadapterも含めて一般的なコマンドレットの出力型は配列で 配列の各要素がクラスになってる Get-netadapterの結果に編集を加える場合、 入力された値をforeach等で分解して クラスにAdd-member等で要素(プロパティとか)を加えて毎回出力するとかする もしくは配列の各要素がPSCustomObjectクラスの変数を作って それを出力するとかする サンプルに丁度よい関数とかあればいいけど一端探すのめんどいから割愛 Add-memberとかクラスのメンバーについてはググって調べて下さいな
251 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 09:11:34.28 ID:kuH8s62I.net] この手の話題でクラスとインスタンスの区別をせずに語られるとすごくモヤモヤする
252 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 12:12:31.33 ID:+C2yOPuj.net] PSVersion 5.1.17763.134 PSEdition Desktop で Windows.Forms.Timer がちゃんと動いてくれぬ Tickイベント内の変数の変更を保持してくれない?