1 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 16:08:31.66 ID:4oQ1Kxot.net] 前スレ PowerShell -Part 3 https://mevius.5ch.net/test/read.cgi/tech/1539074808/ 次スレは>>980 が立ててね!!
902 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 21:16:07.96 ID:lPCF/h8Q.net] テキストストリームの事なのかNTFSの代替データストリームの事なのか どちらなんだ
903 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 22:11:57.22 ID:qq3K45Kg.net] 代替データストリームはテキストに限った話じゃないのでは
904 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 22:45:50.85 ID:9akTDBYB.net] テキストに限った話ではないけど、質問者が正確に把握してるともまた限らない
905 名前:デフォルトの名無しさん [2021/01/29(金) 23:59:43.31 ID:t1LR5As2.net] PoweShellのクラスで、C#と同様にインデクサーを定義することはできますか? 例えば、あるクラスのインスタンス$hogeに対して $hoge[$i] という感じで添字でアクセスしたいです。
906 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 14:37:31.38 ID:jsWOzGKR.net] C#の演算子オーバーロードがPSで使えるかと同じ無意味な質問
907 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 16:01:58.79 ID:sgLd3qg+.net] >>902 使えるの?
908 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 17:07:09.19 ID:Ti7TRi+9.net] >>898 たぶんテキストストリームのことです file:stream1 ↑これ
909 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 17:24:57.96 ID:x4IKZ5QX.net] そのファイルに付属させたい情報を一緒にいれておくということだろう ソースだったら、開発秘話とか入れとけば?
910 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 17:26:58.51 ID:x4IKZ5QX.net] あと自分の写真とか連絡先とかプロフィールを入れとけばいいかもW
911 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 19:01:56.87 ID:Ti7TRi+9.net] >>905 >>906 ああREADME.md的なものをですか? なるほどそれは便利そう
912 名前:901 [2021/01/31(日) 19:31:38.13 ID:yFPHlREj.net] >>902 PowerShellでも.Netの コレクションクラスを使えますので、 インデクサーを使うこと自体はできますよね? 同様のことをユーザー定義クラスで実現できないかと思ったのですが、 無意味でしょうか…
913 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 20:11:33.10 ID:IDCaHEld.net] >>904 それ代替データストリームに見えるけどどの辺がテキストストリームなんだろ しかも、NTFSに依存する機能で.mdの代替とか悪手でしかない
914 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 11:36:09.24 ID:XDbQ82ak.net] >>909 結局何に使うのか言ってないじゃん
915 名前:デフォルトの名無しさん [2021/02/04(木) 23:44:34.92 ID:OAJDFKMl5] バカ不平多し★へつらい生きてるからリストラ対象 https://www.youtube.com/watch?v=carOYI-xNoI 勝ちは偶然、負けは必然★負けて消えた人に足りなかったものは? https://www.youtube.com/watch?v=agAQTF1OaBU&t=38s リーダー達の給料が高いのは単純労働者じゃないから https://www.youtube.com/watch?v=8o9il6dVXGk できません、自信がありません、無理です★ボンクラにしたのは誰? https://www.youtube.com/watch?v=54YNXSQsxuM 9割の人は、ただの作業員★自学自習こそ仕事の基本 https://www.youtube.com/watch?v=vIGKDmmBJcs サラリーマン、10年経てばボンクラ説 https://www.youtube.com/watch?v=QdfVJnVuLlY
916 名前:デフォルトの名無しさん [2021/02/05(金) 00:48:27.75 ID:a81hUa+F.net] PowerShellのパイプやリダイレクトは仕様が良くないね。 エンコードせずにバイナリデータのままパイプする従来の方法も選べたほうが良かったね。
917 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 14:45:47.08 ID:PbAzOwWf.net] cmd /c foo `| bar `> baz とでもしておけ
918 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 21:20:19.10 ID:FdcfXC45.net] >>912 これじゃあかんの [byte[]]$bin = cat -encoding byte
919 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 08:02:58.77 ID:xZe5l+zL.net] パイプを使いたいんだよ
920 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 09:37:27.62 ID:ya6+Y4aC.net] パイプカットするの?
921 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 14:28:17.57 ID:0arkAH5a.net] >>915 encoding byteがどういう型が返るか示しただけでもちろんパイプにも使えるけど
922 名前:デフォルトの名無しさん [2021/02/06(土) 23:58:30.54 ID:5Ze23T9D.net] >>913 `| や`>が解説されているマイクロソフト公式ページはどこになりますか? 検索キーワードが記号ばかりなので探し方が分からず困っております。 >>914 私の環境では、以下のエラーが出て動きませんでした。 Get-Content: Cannot process argument transformation on parameter 'Encoding'. 'byte' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')
923 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 01:02:44.55 ID:hwDwbBnD.net] >>918 '|'はパイプ'>'はリダイレクトで調べれば出てくるよ bashの知識が必要になるな
924 名前:デフォルトの名無しさん [2021/02/07(日) 01:34:59.08 ID:IiZq+u+t.net] >>919 具体的なURLはどこになりますか?
925 名前:デフォルトの名無しさん [2021/02/07(日) 01:38:10.26 ID:IiZq+u+t.net] >>919 検索にbashの知識が必要というのは具体的にどういう意味ですか?
926 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 01:46:34.08 ID:IiZq+u+t.net] ひょっとして>>913 と>>919 は別人なのかな。 もし別人なら>>919 への質問はなかったことにしてください。論点がずれてるようだから。
927 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 07:11:26.49 ID:jVPjdJHk.net] @パターン1 $data = @('red','green','blue') if ( $data -ne 'green' ) { 'greenはありません' } greenはありません Aパターン2 $data = @('red','green','blue') if ( $data -ne 'pueple' ) { 'greenはありません' } greenはありません 両方とも同じ結果を返してしまいます。 配列と比較して、無かったらtrue、あったらfalseみたいな書き方ってありませんか? イメージとしては if ( $data.notContains('green')) みたいな書き方です。 用としては、if ( $data.Contains('green'))で足りるのですが、 気持ちの問題として、無かったらtrue、あったらfalseという書き方をしたいです。 よろしくお願いいたします。
928 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 09:44:27.16 ID:jX/y7Db/.net] >>923 > 両方とも同じ結果を返してしまいます。 まず $data = @('red','green','blue') $data -ne 'green' で何が戻ってくるか確認すればなぜそう言うふうに動くかわかると思う > 気持ちの問題として、無かったらtrue、あったらfalseという書き方をしたいです。 どうしても-eqとか使いたい場合、俺なら($data -eq 'green').Count == 0って書くかな どう見ても$data.Contains('green')の方がわかりやすいと思うけど
929 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 09:58:10.78 ID:fgGFki9a.net] $data = @('red','green','blue') if (not ($data -eq 'green')) {} if (not ($data.Contains('green'))) {} if (not ($data -contains 'green')) {} if ($data -notcontains 'green') {} if ('green' -notin $data) {} -eq演算子はフィルタとして働くのでここでの用法は微妙 -in系の演算子は配列が大きいとオーバーヘッドが大きいらしい
930 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 09:59:45.82 ID:fgGFki9a.net] 否定をtrueにするってどういうことだろ $colors = @('red','green','blue') $found = $data -contains 'green' if ($found) { } else { } なら自然に読み下せる ここで$notFoundという変数を使われると気になる if (not $found) { # 先に書いておきたい処理 } else { # 長々とした本処理 } としたいという趣旨ならわかる
931 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:03:05.78 ID:fgGFki9a.net] 変数名を変え忘れたので訂正 $found = $colors -contains 'green'
932 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:18:17.21 ID:jVPjdJHk.net] >>924-926 レスありがとうございます。 > 否定をtrueにするってどういうことだろ > どう見ても$data.Contains('green')の方がわかりやすいと思うけど $exec_shinai_jikan=@('01','02','03') $imananji=Get-Date -Format HH if ($exec_shinai_jikan -notcontains $imananji){ "実行するよ" } else { "実行しないよ" } 実際のコード(一部)はこれです。変数名のセンスが独特ですよね・・(By 開発の人、私は開発じゃないです)といわれているので 出すのが恥ずかしかったんです。混乱を生んだようでして申し訳ない。 >で何が戻ってくるか確認すればなぜそう言うふうに動くかわかると思う ・0か0を超える値か ・nullかnullを除く何らかの値か でtrue or falseが決まる感じでしょうか? -notって、-notだけじゃ赤傍線引かれるけどなにがだめなんだと思ったら、-not〜って表現があったんですね。 ありがとうございます。
933 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:22:55.16 ID:5sEA4G4p.net] >>919 bashの知識は不要でしょ DOSですらパイプやリダイレクト存在するんだし
934 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:24:14.00 ID:fgGFki9a.net] なるほどそういう感じか -not演算子のハイフン書き忘れてた ごめんね
935 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:26:29.15 ID:fgGFki9a.net] >>924 ($data -eq 'green').Count -eq 0 これってgreenが含まれない場合は最初の-eq演算による絞り込み結果が$nullになって ぬるぽになるかと思いきや$null.Countの呼び出しは特例的に0を返すんやね またPowershellの妙な癖を覚えてしまった
936 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 11:48:29.36 ID:jX/y7Db/.net] >>931 > これってgreenが含まれない場合は最初の-eq演算による絞り込み結果が$nullになって ならないよ、単に空の配列になるだけ gm -inputobject ($data -eq 'yellow') とかやればわかる
937 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 12:10:49.69 ID:fgGFki9a.net] >>932 ありがとう、勘違いしてた そこは自然な動きなんやね
938 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 13:45:02.08 ID:hwDwbBnD.net] >>920 https://docs.microsoft.com/ja-jp/powershell/ ここでリダイレクトとかパイプとか検索ワードを入れれば解説が出てくるよ
939 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 20:57:33.01 ID:rt2m338a.net] >>914 ,918 6.0で仕様変更された https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/breaking-changes-ps6?view=powershell-7.1#unify-cmdlets-with-parameter--encoding-to-be-of-type-systemtextencoding-5080 -Encoding の値 Byteはファイルシステム プロバイダーのコマンドレットから削除されました。 新しいパラメーター -AsByteStream を使用して、入力としてバイト ストリームが必要なこと、あるいは出力がバイト ストリームであることを指定してください。
940 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 10:00:24.88 ID:hefdb5Yb.net] 可変長配列数?的なものの実現方法を教えてください。 CSVを以下の通り加工したいのですが、 1554412,A,B,C,D 2176944,D,C,E,F,G,H,I,J 4887447,F,H,J,A,K こんな感じのカンマ区切りcsvを 1554412,A 1554412,B 1554412,C 1554412,D 以下同じパターン で成形したいのです。 csv区切り文字は必ずカンマで、 フィールド数は行により異なります。 行を読み込んで、配列に入れて〜、配列の最初のフィールドを入れて〜 とぼんやり想像しているのですが、「個数が定まっていない行を、配列に入れる方法」が想像つきません。 可変長配列数?的なものの実現方法を教えてください。
941 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 18:12:00.38 ID:hRqw8VTE.net] 2つ目のカンマ or 改行まで読んでから要素数2の固定長配列に入れるのはどうですか。 エレガントな方法ではないと思うので、他の方の意見も参考にしてください
942 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 18:19:41.40 ID:hRqw8VTE.net] あ、A, D, FじゃなくてA, B, Cでしたか。 マルチバリューカラムになっているのを正規化したいんですね。 最初の一つ目だけ取るのと勘違いしてました。 1. 一行読んでstring 2. カンマでstring.splitしてstring[] 3. [1]からstring.lengthまでを、[0]とstring.joinして、string[] 4. 全行ループ これでどうですか
943 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 19:17:13.97 ID:JrOSOdLx.net] PowerShell っぽくならこんな感じかな '1554412,A,B,C,D', '2176944,D,C,E,F,G,H,I,J', '4887447,F,H,J,A,K' | %{ $a, $b = $_ -split ',', 2 $b -split ',' | %{ "$a,$_" } }
944 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 19:51:01.55 ID:hRqw8VTE.net] どうしてこれ動かないの? $fが更新されない スマホでコード書くの疲れたんで、誰か教えて下さい。 https://tio.run/##TY3LCsIwEEX38xVDyEJxLEaiVUHw/cYfkC5EUluoqTRFreK316kguBm4hzn3XtO7yVxkkqQs5cPhEEcCVKejtWrTmCY0pRm0ld/ta00zTnNa0JJWtKYN6F7P19pnsqINf29BjLDprkmcozjM7S3OUnsxNg8Gg72572JrBECYZuZ4irAmHxhb5NU6vkAW1Tijn08CZFihwh1awZ9VfC2myvM4OW9n7DmPmqoefIuelRRio6rgKwtG8IZ3WX4A
945 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 21:07:38.33 ID:bnTPmcqs.net] >>940 $xs[0]としてごらん 5行目"@ -split "`n"で意図通りになると思う
946 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 21:45:54.25 ID:JrOSOdLx.net] >>940 "[Environment]::NewLine" ↓ "$([Environment]::NewLine)"
947 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 21:58:58.82 ID:hefdb5Yb.net] >>938 とりあえず用は足せました。が、多分ご紹介の内容と全然違うことをやってると思います。 レスの内容が半分分かりませんでした。 >3. [1]からstring.lengthまでを ここが猛烈にヒントになってこんな感じにしました。 foreach ($l in Get-Content C:\temp\test.txt) { $l=$l.Split(",") 1..(($l.Length) - 1) | % {write-host ($l[0],$l[$_]) } } サンプルのコードをいただけると幸いです。 >>939 これも無事動きました。ありがとうございます。 %ってのを知りませんでした。 Powershell難しすぎです。 勉強してるんですが、正直心折れそうです。 bashはそこそこ使えるので行けるだろと思ってたんですが、ナメてました。 死にそうです。
948 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 22:00:44.14 ID:hefdb5Yb.net] >>943 自己レスすいません。 これも結局、 write-host ($l[0],$l[$_]) } で間をカンマ区切りにしたかったんですけど、 1時間手を変え品を変えで結局ダメでした。 何が悪いんでしょうか。
949 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 22:12:55.91 ID:hefdb5Yb.net] 何度もすいません。 write-hostで標準で区切り文字が半角スペースになってるという事実がやっとわかりました。 {write-host -Separator "," $l[0]$l[$_]} で無事に希望の出力を得ることができました。 ありがとうございました。
950 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 00:08:14.80 ID:lj0aoxL+.net] すっきり書けなくてもどかしい $csv -split "\r\n" | % { $a = $_ -split ','; $a[1..($a.Count - 1)] } | % { $a[0], $_ -join ',' }
951 名前:デフォルトの名無しさん [2021/02/11(木) 02:23:21.20 ID:VegncXCD+] SIer業界がブラックな理由を解説する。エンジニアは自社開発をしているWeb業界がオススメ! https://www.youtube.com/watch?v=iy4nnAI9og4 【業界研究】IT業界でひと括りにするのは危険。SIer、Web制作、 アプリ開発で仕事内容が全く違います。【就活・転職】 https://www.youtube.com/watch?v=_IJQ2iBkf4w エンジニアの仕事が稼げる理由とは?プログラミングスキルと 仕事の需要は比例しないので、実は技術力が低くても稼ぐことができる! https://www.youtube.com/watch?v=82Bs-NH8jAM 通勤時間が長い人ほど無能説。家賃節約とか言っている暇があったら、 会社の近くに引っ越して浮いた時間に副業したほうがお金も貯まるし強くなれる。 https://www.youtube.com/watch?v=mt6K1RJnk6I プログラミングに英語は必要か?に対する明確な答え https://www.youtube.com/watch?v=WWULJbVECKU 私がヤフーを辞めた理由 https://www.youtube.com/watch?v=-G-7Hc3rJw8 ITエンジニアの種類と必要なスキル ?アプリケーションエンジニア編? https://www.youtube.com/watch?v=K9BaS2eBGmw 日本と海外のプログラマーの違いを比較してみた https://www.youtube.com/watch?v=u1OyelvNqM0
952 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 19:38:29.26 ID:rrBqcjKj.net] >>940 newlineにクォートつけてたわw >> 940, 941 さんthx 一応quote外した結果。 https://tio.run/##TY3dCoJAEIXv5ykG2YuiUdrY0oKg/396gfAiYk3B1nClsujZbYwuuhk4H/Odc83uOrexTtOqEg@LQxw5ILtdpWSHxjShKc2gI/1eXymacZrTgpa0ojVtQAWBr5TPZEUb/t6CM0LXXtOkwMPc3JI8MxdtinAw2Ov7LjEaIMpyfTzF2BAPTAzyZhNfIMp6mtHPdsgBEdWotId2@GeVX4up9DxO1ttpcy5iVzbDb9GzliJs1RV8RckI3vCuqg8
953 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 09:16:23.07 ID:q/2+I+Zd.net] $?で直前のコマンドの実行結果を知ることができますが、 直前に実行したコマンドのPIDを知る方法ってありませんか? Start-Process -FilePath c:\bin\command.exe -ArgumentList 1 $cmd1pid=get-chokuzenn-pid $cmd1pid 78968 Start-Process -FilePath c:\bin\command.exe -ArgumentList 2 $cmd1pid=get-chokuzenn-pid $cmd1pid 4292 実際に動かしたいのは、ttpmacro.exe(Teratermのマクロ)です。 Teratemマクロで外部の機器にsshで接続して、ssh接続のログの内容を見て そのプロセスを終了させるか判断したいと思っております 書こうとしているスクリプトを動かす時点で、1個もTeratermが動いていないなら、 Get-Processでなんとかなると思うのですが、上記スクリプトを実行する時点で ほかのTeratermが動いている可能性があり、それを間違って死なすわけにはいかず、 Powershellスクリプト内で、Start-Processなりで動かした、直前のプロセスのIDを知る方法があればと思い相談させていただきます すいません、よろしくお願いいたします。
954 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 09:17:40.74 ID:q/2+I+Zd.net] test.ps1 Start-Process -FilePath c:\bin\command.exe -ArgumentList 1 $cmd1pid=get-chokuzenn-pid $cmd1pid 78968 Start-Process -FilePath c:\bin\command.exe -ArgumentList 2 $cmd2pid=get-chokuzenn-pid $cmd2pid 4292 すいません、スクリプトの例に誤りがありました 訂正します
955 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 09:57:59.46 ID:JWXF4JEZ.net] v7.0.5 https://github.com/PowerShell/PowerShell/releases/tag/v7.0.5 v7.1.2 https://github.com/PowerShell/PowerShell/releases/tag/v7.1.2
956 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 10:15:49.19 ID:JXvYdGCL.net] 引数に -PassThru を付けて戻り値からidで取れないかな?
957 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 11:17:25.75 ID:jxDcSv/l.net] >>949 プロセスIdなんて取る必要ない(むしろ危険) >>952 が言うように-PassThruオプションつけるとSystem.Diagnostics.Processオブジェクトが返ってくるからKill()メソッド呼ぶだけでいい
958 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 13:51:19.53 ID:q/2+I+Zd.net] >>952 >>953 $process = Start-Process -PassThru notepad $process.Kill() できました ありがとうございました
959 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 13:58:44.73 ID:aXMNNeBu.net] すばらしい
960 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 18:04:24.59 ID:elIMNXvv.net] 音楽プレーヤーで MP3 ファイルをシャッフル再生させたいので、 dir /n /-b /s *.mp3 > playlist.txt の結果をランダムに入れ替えるにはどうすればいいでしょうか? (乱数で再生する行を求めると同じ曲がつづくかもしれないのでシャッフルにしたい。)
961 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 19:45:47.08 ID:PYtZn7CJ.net] >>956 テキトーでいいなら dir /n /-b /s *.mp3 | sort -prop @{Exp={[Guid]::NewGuid()}} > playlist.txt
962 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 20:59:17.73 ID:9JYy97c0.net] Sort-Object {Get-Random}じゃあかんの?
963 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 21:06:22.08 ID:PYtZn7CJ.net] >>958 それでもいいけど、遅いらしい https://aquasoftware.net/blog/?p=612
964 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 21:14:23.98 ID:D/l9Txdy.net] 自分の音楽コレクションのプレイリスト作る要件なら速度は別にと思わなくもない 5分とか掛かるならちょとやだけど
965 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 21:58:32.75 ID:WEbw7iAW.net] プレイリストのランダム再生機能ぐらい大抵のプレイヤーに付いてるだろうに
966 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 22:34:07.74 ID:XvWS5Qrl.net] >>959 のリンク先のコードで質問です 勉強のためちょこちょこ編集してみたところ、 「なんでこれで変数の中がランダムにおきかわるの?」と疑問がわきました $r = @(1,2,3,4,5,6,7,8,9,10) $r=($r | sort -Property @{Exp={[Guid]::NewGuid()}}) $r $foo = @(1,2,3,4,5,6,7,8,9,10) $foo[0] = $foo | sort -prop @{Exp={[Guid]::NewGuid()}} $foo[0] 前者のように、$rの中身を $r | sort -Prop〜で置き換えるというのなら納得がいくんですが、 なぜ、後者のように、書いてもランダムになるのかが納得いきません 変数定義はパイプの前の話で、どうしてそれがパイプ先の、ランダムにする操作で置き換わるのでしょうか。
967 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 22:48:16.31 ID:PYtZn7CJ.net] >>962 やってることは同じで結果が単に$foo[0]に入ってるだけ $foo[1]~$foo[9] の内容は変わってないはず ちなみに置き換えてるわけじゃなくて新しい配列を作ってそれを$rとか$foo[0]に入れてる
968 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 22:59:06.67 ID:XvWS5Qrl.net] >>963 ありがとうございます 書き方が違うけど処理が同じというとらえ方でいいですか? "パターン1" $foo = @(1,2,3,4,5,6,7,8,9,10) $foo=($foo | sort -prop @{Exp={[Guid]::NewGuid()}}) $foo "パターン2" $foo = @(1,2,3,4,5,6,7,8,9,10) $foo = $foo | sort -prop @{Exp={[Guid]::NewGuid()}} $foo パターン1の書き方違いが、パターン2のようなとらえ方でいいでしょうか?
969 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 23:33:24.56 ID:PYtZn7CJ.net] >>964 ああ、すまん ( ) は見落としてた パターン1は単に式を ( ) で包んでるだけだからパターン2と同じと思っていい
970 名前:954 mailto:sage [2021/02/13(土) 23:36:43.19 ID:elIMNXvv.net] Get-ChildItem -path d:\ -filter *.mp3 -recurse | foreach {$_.FullName} | sort {Get-Random} や、 Get-ChildItem -path d:\ -filter *.mp3 -recurse | foreach {$_.FullName} | sort -prop @{Exp={[Guid]::NewGuid()}} でうまくいきそうです。 ありがとうございました。
971 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:07:20.96 ID:rA0IJrKX.net] >>965 ありがとうございますよくわかりました パイプで処理がわかれると思っておりましたが、 =で右辺と左辺に分ててる感じなんですね
972 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:22:33.69 ID:D24G58JB.net] >>966 上手く行って何より 蛇足だけど > foreach {$_.FullName} の所は PowerShell 的には > Select-Object FullName でもいいかな
973 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:28:18.02 ID:D24G58JB.net] >>967 他の言語に似せるためか代入文は最優先で解釈されるようになってるみたい まあよくわからなかったら多少余分でも ( ) を付けといた方があとから見ても誤解されにくいと思う
974 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 08:22:42.85 ID:islL1Ifn.net] Announcing the PowerShell Community Blog https://devblogs.microsoft.com/powershell-community/announcing-the-powershell-community-blog/
975 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 04:45:12.99 ID:xcCpjLov9] 高度IT人材、富士通は最大年収3500万円へ https://www.nikkei.com/article/DGXMZO58248520Q0A420C2000000/ 「富士通年収3500万!」日本のIT企業の年収も、高額化してきました https://needs-explorer.co.jp/5801/ AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へsierblog.com/archives/1994846.html 【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材 https://coinmap.jp/archives/56639 東芝、幹部候補をスタートアップに出向 21年度から https://www.nikkei.com/article/DGXZQODZ284AV028122020000000 スタートアップで「武者修行」、村田製作所など導入 https://www.nikkei.com/article/DGXMZO6588293005112020LKA000 「スタートアップ点火」中部から世界 名古屋支社シンポ https://www.nikkei.com/article/DGXZQOFD087YN008122020000000 インフルエンサーによる独自製品開発やブランド構築を支援するGenflowは英BGFから11.4億円調達 https://jp.techcrunch.com/2021/01/21/2021-01-20-genflow/ 本業より副業で稼ぐ「パワフル副業者」急増で企業に求められる新しい組織づくり https://dime.jp/genre/1076364/
976 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 08:20:29.72 ID:XBzTqCMZ.net] posh-git と GetChildItemColor でダイブましになった 他にもおすすめあったらおせーて!
977 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 20:50:03.67 ID:8GGn/OTs.net] GetChildItemColorを入れるとシンボリックリンクのリンク先のパスが表示されなくなるのがクソ
978 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 00:20:13.77 ID:NQgDi+il.net] #test.ps1 param([array]$foo) echo ('$ARGS[0]' +':'+ $ARGS[0]) echo ('$foo[0]' +':'+ $foo[0]) echo ('$foo[1]' +':'+ $foo[1]) echo ('$foo[2]' +':'+ $foo[2]) PS> .\test.ps1 aaa -foo bbb,ccc,ddd $ARGS[0]:aaa $foo[0]:bbb $foo[1]:ccc $foo[2]:ddd PS> .\test.ps1 aaa -bar bbb,ccc,ddd $ARGS[0]:-bar $foo[0]:aaa $foo[1]: $foo[2]: PS C:\script> PS> \test.ps1 aaa $ARGS[0]: $foo[0]:aaa $foo[1]: $foo[2]: @引数やパラメータの数、パラメーター名などのエラーをチェックする方法を教えてください。 Aパラメータの区切りをカンマで無くスペースにする方法があれば教えてください。 ググってみたのですが、ググり方が悪いのか、見つからず苦しんでおります
979 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 00:22:05.89 ID:NQgDi+il.net] >>974 行数制限に引っかかったので分割します。 @は引数〇個、パラメーター名foo、パラメーターfooの数、fooが1個以上(0はだめ)というのをチェックしたいです。 なにとぞよろしくお願いいたします。
980 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 10:00:39.98 ID:TaWWQOJL.net] >>975 about_Functions_Advanced_Parameters https://docs.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847743(v=wps.640)
981 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 23:49:57.97 ID:NQgDi+il.net] >>976 ありがとうございます。 読み解くのに時間がかかりそうですが、 希望のものが書いてありそうです。
982 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 03:07:24.22 ID:hWQCqBl5.net] そもそもPowerShellの関数(コマンドレット)は空白区切りで引数渡すんだけどね >>974 はカンマ区切りで引数を渡してるんじゃなくて、カンマで作った配列を渡してるだけ 自動変数の$args(配列)はjavascriptでいう残余引数みたいな物 PS> .\test.ps1 aaa -foo bbb,ccc,ddd 名前付き引数 $foo に配列 bbb,ccc,ddd が渡され、未定義の aaa が $args に渡されてる PS> .\test.ps1 aaa -bar bbb,ccc,ddd $foo に先頭の引数 aaa が渡され、未定義の -bar と配列 bbb,ccc,ddd が $args に渡される 特にオプションを指定しなければ、複数の引数を設定すれば空白区切りで渡せる
983 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 15:14:39.63 ID:VgGpSMHu.net] PowerShell起動すると毎回更新しろって出るのがウザくて7入れてみたけど起動時の立ち上がりが遅くなって切れそう しかも結局help云々が毎回出るし MS頭おかしいんでねーの
984 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 19:40:18.23 ID:gsxqF2ed.net] おバカ自慢要らね
985 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 10:00:11.18 ID:fu8qQk1O.net] v7.0.6 https://github.com/PowerShell/PowerShell/releases/tag/v7.0.6 v7.1.3 https://github.com/PowerShell/PowerShell/releases/tag/v7.1.3
986 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 14:33:26.87 ID:LuYPD+lh.net] | where-objectで、条件に引っかかったら0(True)、引っかからなかったら1(False)を返す方法ってありませんでしょうか。 あるサービスの実行状態を知るために、こういうことをしてるんですが、 (Get-Service | Where-Object -Property Name -Match Adobe | Where-Object -Property Status -Match Running).length 1 ←AdobeがRunnningだった 0 ←AdobeがRunnin
987 名前:gじゃなかった 他に、もっとPowershellっぽい書き方があったら教えてください [] [ここ壊れてます]
988 名前:デフォルトの名無しさん [2021/03/13(土) 14:59:52.96 ID:4/YYKqK7.net] >>982 ワンライナーにこだわっているのか?
989 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 15:31:11.30 ID:33EHGK5P.net] Ruby の3項演算子みたいなものは無いの? 真偽値となる条件式 ? 真の時の値 : 偽の時の値
990 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 15:36:01.07 ID:ErfpRTBJ.net] (gsv adobe*).status -contains 'running'
991 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 15:48:12.79 ID:Qa5+c/Kf.net] >>982 [int][bool](Get-Service | Where-Object {($_.Name -Match 'Adobe') -and ($_.Status -Match 'Running')})
992 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 20:59:36.95 ID:3roljCwu.net] >>984 三項演算子 https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-70#ternary-operator
993 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 15:40:02.21 ID:am3+IzSP.net] PowerShellは処理の方法が多くていいな
994 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 21:46:47.24 ID:8YYOAayf.net] 連想配列の参照渡しで function f([ref]$h) { $h.value } $h = @{ a = 0; b = 1} f([ref]$h) はうまくいくんだけど、引数もう一個増やして function f([ref]$h, $s) { $h.value; $s } $h = @{ a = 0; b = 1} $s = 2 f([ref]$h, $s) にすると、 f : パラメーター 'h' の引数変換を処理できません。引数には参照型を指定する必要があります。 何が悪いん?ググっても見つけられなくてさっきから悩んでる(汗
995 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 21:55:49.94 ID:8nGQn8Lf.net] 括弧とカンマいらないのでは
996 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 22:41:43.33 ID:T+RcbFBu.net] f ([ref]$h) $s
997 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 23:07:21.02 ID:8YYOAayf.net] >>991 出来た!ありがとう でもなぜその書き方になるのかわからない(汗
998 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 15:30:15.42 ID:2OtrSpOH.net] カッコとカンマで引数渡すのはオブジェクトのメソッドの時だけだね 関数はスペース区切りで渡す これは文法だから理由はない
999 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 16:45:16.26 ID:bRJV5TtK.net] 1, 2 で配列作っちゃうようにしちゃったからねぇ 記法がシェルスクリプトとプログラム言語のあいの子みたいになってるからちょっと直感に反する所がちらほら見え隠れするのはしょうがない
1000 名前:デフォルトの名無しさん [2021/03/16(火) 23:02:58.87 ID:Bd62bkLQ.net] >>988 処理の方法が多いことは、可読性が落ちる原因にもなる。 PythonをもちあげてPerlをくさす時に使われたのと同じ論法だよ。
1001 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 08:00:24.75 ID:EzeD0xtp.net] 俺がPowerShellを気に入ったのはPerlと同じ匂いを感じたからだ
1002 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 08:19:50.03 ID:vnLGIRIV.net] しかしPerlではないのがいいところ