[過去ログ]
PowerShell -Part 6 (1002レス)
PowerShell -Part 6 http://mevius.5ch.net/test/read.cgi/tech/1644744972/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [sage] 2022/02/13(日) 18:36:12.07 ID:LaQ04ZoE 前スレ PowerShell -Part 5 https://mevius.5ch.net/test/read.cgi/tech/1615994992/ 次スレは>>980が立ててね!! http://mevius.5ch.net/test/read.cgi/tech/1644744972/1
876: デフォルトの名無しさん [sage] 2023/08/12(土) 22:55:15.75 ID:zGmVrirz 関数の出力が意図せず(うっかり)複数個所から行われ分かりにくい点は バッチとかシェルスクリプトの挙動に合わせすぎた為だろうね。 例えばping.exeを対象2か所に実行するバッチ(.bat)をパイプで繋げたら、 バッチ1つの実行で、ping2回の20行程度がパイプに流れる。 PowerShellスクリプトや関数もこれと同じだと考えればそんな違和感ないはずなんだけど、 元々他の言語なんかで「関数の戻り値は1つ(明示的な1つor関数末尾の1つ)」とか 「明示的に変数格納や出力
などしなければ、メソッドや関数の戻り値は捨てられる」 って事に慣れてるし、PowerShellも同じ文法だから同じ挙動を期待しちゃう。 上でも出てるけど、標準ではパイプに流さない仕様とした方が 敬遠される点が減ったと思う。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/876
877: デフォルトの名無しさん [sage] 2023/08/14(月) 13:31:51.80 ID:4NX3l0Vm パイプはスレ違いのバッチスレでドヤ顔ワンライナーするぐらいしか能が無いと言っても過言 http://mevius.5ch.net/test/read.cgi/tech/1644744972/877
878: デフォルトの名無しさん [sage] 2023/08/14(月) 21:15:06.40 ID:5teSXOgl 1GiB程度のファイルを処理するときにはパイプは重宝するよ http://mevius.5ch.net/test/read.cgi/tech/1644744972/878
879: デフォルトの名無しさん [sage] 2023/08/15(火) 05:53:15.07 ID:WIzBRZyi バッチファイルのパイプはメカニズムが違う あれは実質一時ファイルを作って次段に渡しているだけなので遅い、と言おうと思ったが "*<CR><LF>" を2^23個書き並べたbigfile.txtに対してコマンドプロンプトで type bigfile.txt | find /C "*" とやったら「瞬時に」 4194304 と返って来るのに、PowerShellで Get-Content .\bigfile.txt | find.exe /C "*" とやったら永劫の時間待たされた後 FIND: パラメーター
の書式が違います と言われた後Ctrl+Cにも応答しなくなた……どうなってるのこれ…… http://mevius.5ch.net/test/read.cgi/tech/1644744972/879
880: デフォルトの名無しさん [sage] 2023/08/15(火) 14:11:57.72 ID:e55ZiwZ3 そりゃパイプで外部コマンドに送ったら1行ずつfind.exe実行して終了するだろうから おかしなことにもなるだろうよ http://mevius.5ch.net/test/read.cgi/tech/1644744972/880
881: デフォルトの名無しさん [sage] 2023/08/15(火) 15:18:16.71 ID:qi/dYdNU > あれは実質一時ファイルを作って次段に渡しているだけなので遅い それはシングルタスクだったDOS時代の話だろ NTのcmd.exeには当てはまらない http://mevius.5ch.net/test/read.cgi/tech/1644744972/881
882: デフォルトの名無しさん [sage] 2023/08/15(火) 15:39:41.88 ID:LS4gbGEC cmd.exeはパイプやfor /Fのコマンドとかワーカースレッドを生成して 別タスク(子環境)としてデータの送り手や受け手を作ってるかな http://mevius.5ch.net/test/read.cgi/tech/1644744972/882
883: デフォルトの名無しさん [sage] 2023/08/24(木) 22:36:16.57 ID:W+JHQ2GG Get-WinEventでSystem.evtxだかのファイルを処理させるとコマンドレットが終了しても一定時間プロセスがファイル掴みっぱなしになるのどうにかしてくれ わざわざ別プロセスでGet-WinEvent用のpowershell起動させる間抜けなコードになったぞ http://mevius.5ch.net/test/read.cgi/tech/1644744972/883
884: デフォルトの名無しさん [sage] 2023/08/25(金) 11:28:27.28 ID:WAOpDjEy 処理速度都合なのかな〜って思ってるけど閉じる手段は提供して欲しい。 自分は.NETのクラス使って処理書いちゃった。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/884
885: デフォルトの名無しさん [sage] 2023/09/04(月) 19:42:45.42 ID:hSX1x29k エクスプローラでファイル選択してコピーして (Get-ClipBoard -Format FileDropList).GetType().ToString() → System.Collections.Generic.List`1[System.Management.Automation.PSObject] うん。 Get-ClipBoard -Format FileDropList | %{$_.GetType().ToString()} → System.Collections.Generic.List`1[System.Management.Automation.PSObject] うn? foreach( $info in Get-ClipBoard -Format FileDropList ){ $info.GetType().ToString() } → System.Colle
ctions.Generic.List`1[System.Management.Automation.PSObject] えぇ… Get-ClipBoard -Format FileDropList | %{$_} | %{$_.GetType().ToString()} → System.IO.FileInfo … [System.IO.FileInfo[]](Get-ClipBoard -Format FileDropList) | %{$_.GetType().ToString()} → System.IO.FileInfo うーん… $list = Get-ClipBoard -Format FileDropList $list | %{$_.GetType().ToString()} → System.IO.FileInfo まぁ… なんか不必要に使いづらい気がするのは自分だけかな。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/885
886: デフォルトの名無しさん [sage] 2023/09/06(水) 19:07:34.39 ID:1kNnDW8h $(Get-ClipBoard -Format FileDropList) | %{$_.GetType().ToString()} → System.IO.FileInfo バッドノウハウの領域だなー http://mevius.5ch.net/test/read.cgi/tech/1644744972/886
887: デフォルトの名無しさん [sage] 2023/09/12(火) 10:37:58.96 ID:EIIMdpOe 隠し属性が設定されたファイルが排他されてるとかで読めない状況のときに -ForceついたGet-Contentで読もうとすると隠し属性解除されるのは理由あるんだろうか http://mevius.5ch.net/test/read.cgi/tech/1644744972/887
888: デフォルトの名無しさん [sage] 2023/09/12(火) 13:50:19.66 ID:KE5ufRbn 質問で申し訳ない AccessでエクスポートしたxlsxをPowershellでComObjectを作成してOpenしたいんだけど 破損している云々で発行元を信用しますか?ってダイアログのせいでOpen出来ない https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbooks.open ここによると15個目の引数で1を指定(xlRepairFile)すれば良さそうなんだけど Powershellで実行するとOpenプロパティが無いよって怒られる。 実際のコードはこう $excel = New-Object -ComObject Excel.Ap
plication $excel.Visible = $True $fileName = (Get-ChildItem "test.xlsx").FullName $book = $excel.Workbooks.Open($fileName, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, [System.Type]::Missing, 1) http://mevius.5ch.net/test/read.cgi/tech/1644744972/888
889: デフォルトの名無しさん [sage] 2023/09/12(火) 16:40:21.35 ID:OgaNelN6 CSVでエクスポートしなよ http://mevius.5ch.net/test/read.cgi/tech/1644744972/889
890: デフォルトの名無しさん [sage] 2023/09/12(火) 17:47:39.83 ID:EIIMdpOe とりあえずこうすると回避できた。 using namespace Microsoft.Office.Interop.Excel $excel = New-Object -ComObject Excel.Application $excel.Visible = $True $fileName = (Get-ChildItem "test.xlsx").FullName $param = @([Type]::Missing) * 15 $param[0] = $fileName $param[14] = [XlCorruptLoad]::xlRepairFile $workbooks = $excel.Workbooks $book = $workbooks.Open.Invoke($param) http://mevius.5ch.net/test/read.cgi/tech/1644744972/89
0
891: デフォルトの名無しさん [sage] 2023/09/12(火) 18:53:31.49 ID:uneKtCE6 >>890 あざす!めっちゃ参考になるます http://mevius.5ch.net/test/read.cgi/tech/1644744972/891
892: デフォルトの名無しさん 転載ダメ [sagete] 2023/09/13(水) 02:20:54.13 ID:E0UN4wqY $param = @([Type]::Missing) * 15 は $param = @([Type]::Missing) * 0xFF のほうが人にやさしい気がする http://mevius.5ch.net/test/read.cgi/tech/1644744972/892
893: デフォルトの名無しさん [sage] 2023/09/13(水) 07:53:07.83 ID:mwnND43t は? http://mevius.5ch.net/test/read.cgi/tech/1644744972/893
894: デフォルトの名無しさん [sage] 2023/09/13(水) 09:33:15.43 ID:ozJmt5GG ひ? http://mevius.5ch.net/test/read.cgi/tech/1644744972/894
895: デフォルトの名無しさん [sage] 2023/09/13(水) 23:41:10.61 ID:tgD8Mqqk >>892の後者は配列に255を掛けてるように見えるのだが 人にやさしい部分てどこ? http://mevius.5ch.net/test/read.cgi/tech/1644744972/895
896: デフォルトの名無しさん [sage] 2023/09/14(木) 03:25:22.93 ID:37z8xtDS マスクしてるのかと思ったわ ちゃんとソース見てなかった すまんこ http://mevius.5ch.net/test/read.cgi/tech/1644744972/896
897: デフォルトの名無しさん [] 2023/09/16(土) 23:53:08.17 ID:DkE7QlfD PowershellのGUI使って簡単な時報を作りたい。 System.Windows.Forms.Timerを使って作ったんだが今何時判定で$Aの数字が毎回リセットされるんでIntervalの回数だけ別ウィンドウが開きまくる。 使い方間違ってるか?教えてくれさい。 $timerTestTick { 【適当に現在時表示】 if(【指定した時間になったら】-and【$Aがtrueなら】){ start-prosess 【音楽ファイルを別ウィンドウで再生して処理継続】 $A = false } } $timerTest.Add_Tick($timerTestTick) $timerTe
st.Interval = 200 $timerTest.Enabled = $TRUE $timerTest.Start() 【適当にフォーム作って表示】 http://mevius.5ch.net/test/read.cgi/tech/1644744972/897
898: デフォルトの名無しさん [sage] 2023/09/17(日) 01:59:03.31 ID:ENG0J7cr >$Aの数字が毎回リセットされるんで それ$Aを更新しようとする度に毎回スクリプトブロックで別の$Aが生成されるからやね ([ref]$A).Value = $false と書けば元の$Aを探しにいくから更新できると思う Powershellのはまりポイントの1つやね http://mevius.5ch.net/test/read.cgi/tech/1644744972/898
899: デフォルトの名無しさん [sage] 2023/09/17(日) 03:18:20.18 ID:LjIc1dUH powershellでGUIって、c#使えない宗教的理由でもあるの? http://mevius.5ch.net/test/read.cgi/tech/1644744972/899
900: デフォルトの名無しさん [sage] 2023/09/17(日) 05:45:06.34 ID:5It5oWIy >>898 スクリプトブロックていうのが働いてるのか。とりあえず試してみるありがとう。 >>899 宗教的理由というより書けないから出来ることで色々やってみてた。 というかPowerShell単体でC#つかえるの? http://mevius.5ch.net/test/read.cgi/tech/1644744972/900
901: デフォルトの名無しさん [] 2023/09/17(日) 09:35:27.80 ID:LYUgOkBe PowerShellでGUI作れるんか! 知らんかった これは興味ある http://mevius.5ch.net/test/read.cgi/tech/1644744972/901
902: デフォルトの名無しさん [sage] 2023/09/17(日) 09:48:58.34 ID:oJeCWV6s >>901 システム管理のサンプル スクリプト https://learn.microsoft.com/ja-jp/powershell/scripting/samples/sample-scripts-for-administration 公式ドキュメントならここの「UI 要素の作成」って所を見てみるといい http://mevius.5ch.net/test/read.cgi/tech/1644744972/902
903: デフォルトの名無しさん [sage] 2023/09/17(日) 13:31:47.95 ID:LJFSWd1b GUI作れるとかマジか ワザワザHTMLソース内部に仕込んでWEBベースでやりとりしてた俺は一体・・・ http://mevius.5ch.net/test/read.cgi/tech/1644744972/903
904: デフォルトの名無しさん [sage] 2023/09/17(日) 14:04:19.59 ID:ENG0J7cr 一応.NET言語の1つではあるからGUIは普通に作れるが 俺はC#コード埋め込んでFuncやAction経由で必要時にpowershellと連携する感じの使い方だな Powershellのコードだけで作るの自体が割と面倒なのや型チェックが働かない辺りとかかあんまメリットを感じない http://mevius.5ch.net/test/read.cgi/tech/1644744972/904
905: デフォルトの名無しさん [sage] 2023/09/26(火) 21:32:36.63 ID:cR6Dxv5m htaの代わりとしてforms呼び出して組んでたけどcssが便利すぎて最近は使ってないな... wpfはどうなんだろうか... http://mevius.5ch.net/test/read.cgi/tech/1644744972/905
906: デフォルトの名無しさん [sage] 2023/09/29(金) 04:49:25.46 ID:wxGTflxT まじでかいな http://mevius.5ch.net/test/read.cgi/tech/1644744972/906
907: デフォルトの名無しさん [] 2023/10/06(金) 21:47:54.00 ID:ESX4xHYZ 日付を元に指定範囲内の一意の数字を出すってできる? 200ぐらいある今日の一言的なものを毎日ランダムで出したいんだがアプリケーションを再起動すると変数リセットされて別の単語出てしまうのを抑止したい。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/907
908: デフォルトの名無しさん [sage] 2023/10/06(金) 22:00:29.66 ID:7j+1PDTD その日の初回の結果をファイルに出力して 2回目以降はそのファイルを読み込みに行けば良いのでは http://mevius.5ch.net/test/read.cgi/tech/1644744972/908
909: デフォルトの名無しさん [] 2023/10/06(金) 22:04:29.98 ID:ESX4xHYZ >>908 それしかないかなぁ ファイル出力を避けたかったんだが http://mevius.5ch.net/test/read.cgi/tech/1644744972/909
910: デフォルトの名無しさん [] 2023/10/06(金) 22:35:50.48 ID:ESX4xHYZ >>908 できそうだからファイル出力の方向でやってみるありがとう。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/910
911: デフォルトの名無しさん [] 2023/10/06(金) 22:36:00.82 ID:ESX4xHYZ >>908 できそうだからファイル出力の方向でやってみるありがとう。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/911
912: デフォルトの名無しさん [sage] 2023/10/06(金) 23:26:20.49 ID:WmRjQTiM その条件なら日付をシード値とみなせるんだから 別の単語が出てくる方がおかしいんじゃないのか 基礎的な論理思考力が欠けているね http://mevius.5ch.net/test/read.cgi/tech/1644744972/912
913: デフォルトの名無しさん [sage] 2023/10/06(金) 23:44:27.78 ID:7j+1PDTD あ、-SetSeedって完全固定の疑似乱数なのか。 再起動したら変わると思ってた。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/913
914: デフォルトの名無しさん [sage] 2023/10/07(土) 04:01:41.30 ID:lBZtWf6D Get-Random -SetSeed $(Get-Date -Format "yyyymmdd") -Maximum 200 http://mevius.5ch.net/test/read.cgi/tech/1644744972/914
915: デフォルトの名無しさん [sage] 2023/10/07(土) 06:18:44.31 ID:xTEoYklV >>914 seedなんてもんがあったのか! ありがとう! http://mevius.5ch.net/test/read.cgi/tech/1644744972/915
916: デフォルトの名無しさん [sage] 2023/10/07(土) 15:47:42.69 ID:lBZtWf6D 912 と 913 をワンライナーで視覚化しただけやぞ http://mevius.5ch.net/test/read.cgi/tech/1644744972/916
917: デフォルトの名無しさん [sage] 2023/10/08(日) 20:27:09.33 ID:bO8eXdHU >>905 wpfも普通にいけるけど、vsのデザイナーがないと厳しいから、じゃあc#でいいかとなりがち htaの代替としたらwpfかwinformで枠だけ作ってwebview2埋め込むのがおすすめ qiitaでも記事があったはず http://mevius.5ch.net/test/read.cgi/tech/1644744972/917
918: デフォルトの名無しさん [sage] 2023/10/08(日) 22:07:55.52 ID:SlOLtELZ webview2ランタイム自体の埋め込み手段がなあ http://mevius.5ch.net/test/read.cgi/tech/1644744972/918
919: デフォルトの名無しさん [] 2023/10/20(金) 16:26:02.69 ID:3co0KDj6 こんにちは フォルダの配下のすべてのテキストファイルを結合した文字列を出力したいです フォルダ直下のファイルだけなら Get-Content *.txt でできました 該当するファイルの一覧は Get-ChildItem -Recurse -Filter "*.txt" -Name でできましたが Get-ChildItem -Recurse -Filter "*.txt" -Name | Get-Content としてもエラーになります http://mevius.5ch.net/test/read.cgi/tech/1644744972/919
920: デフォルトの名無しさん [sage] 2023/10/20(金) 19:30:02.44 ID:qU4/oN+w 「 -Name」が不要。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/920
921: デフォルトの名無しさん [sage] 2023/10/20(金) 20:49:00.72 ID:3co0KDj6 できました! http://mevius.5ch.net/test/read.cgi/tech/1644744972/921
922: デフォルトの名無しさん [sage] 2023/10/31(火) 16:01:28.45 ID:Vjqv9VpS PSNativeCommandPreserveBytePipe が楽しみすぎる http://mevius.5ch.net/test/read.cgi/tech/1644744972/922
923: デフォルトの名無しさん [sage] 2023/10/31(火) 16:01:33.19 ID:Vjqv9VpS PSNativeCommandPreserveBytePipe が楽しみすぎる http://mevius.5ch.net/test/read.cgi/tech/1644744972/923
924: デフォルトの名無しさん [sage] 2023/10/31(火) 16:59:01.62 ID:sGPoKgPO この言語って3次元以上の配列って出来ないって認識であってる? 二次元は $array[0,0]で良いんだよね? 三次元というかジャグ配列?はとりあえず使えるから $array[0][0,0] でやってるんだけど中の2,3次元目とか中の要素数カウントが出来なくて結構困ってる http://mevius.5ch.net/test/read.cgi/tech/1644744972/924
925: デフォルトの名無しさん [sage] 2023/10/31(火) 18:05:21.98 ID:BgNWqm6B ジャグ配列で良いんだったら$array[0][0][0]…といくらでも入れ子にすれば良かろうに http://mevius.5ch.net/test/read.cgi/tech/1644744972/925
926: デフォルトの名無しさん [sage] 2023/10/31(火) 19:44:43.60 ID:CQ6pveQE 多次元配列はこうじゃない? $array = [Object[,,]]::new(4,5,6) # 3次元、4×5×6 $array[0,0,0] = "(0, 0, 0)" $array[0,0,1] = "(0, 0, 1)" # 参照は「$arraya[0,0,0]」だと配列スライスと間違えそうだから「$array.Get(0,0,0)」の方が安全かも。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/926
927: デフォルトの名無しさん [sage] 2023/10/31(火) 19:47:15.76 ID:CQ6pveQE 要素数は $array.GetLength(0) # 4 $array.GetLength(1) # 5 $array.GetLength(2) # 6 http://mevius.5ch.net/test/read.cgi/tech/1644744972/927
928: デフォルトの名無しさん [sage] 2023/10/31(火) 19:54:44.51 ID:sGPoKgPO あぁそっか普通に出来るのか初期化の仕方が悪かったみたい 普通の初期化でも3次元出来るんだね 調べたらジャグ配列のが処理早いそうなので結局そっち採用すると思う レスしてくれた方有難う http://mevius.5ch.net/test/read.cgi/tech/1644744972/928
929: デフォルトの名無しさん [sage] 2023/11/10(金) 20:49:31.69 ID:qelae/OI 7.4のGAはいつごろになりそう? http://mevius.5ch.net/test/read.cgi/tech/1644744972/929
930: デフォルトの名無しさん [sage] 2023/11/11(土) 09:09:55.24 ID:JcjqK/bB PowerShell Community Call - October 19 2023 https://github.com/PowerShell/PowerShell-RFC/blob/master/CommunityCall/notes/20231019_Notes.md Ideally a GA Nov, may have 7.5 preview in December, not guaranteed http://mevius.5ch.net/test/read.cgi/tech/1644744972/930
931: デフォルトの名無しさん [sage] 2023/11/11(土) 09:43:40.20 ID:FLa2E6qS Ideally に進んで今月中の GA に期待 ところで [console]::OutputEncoding って shift_jis と utf-8 のどっちにしてます? http://mevius.5ch.net/test/read.cgi/tech/1644744972/931
932: デフォルトの名無しさん [sage] 2023/11/11(土) 16:23:53.35 ID:CPZqzXvF 7入れて何かいい事あんの? それ、OS標準の5.1でできますよね? もしかして、デベロッパーのオナニーに付き合わされていませんか? http://mevius.5ch.net/test/read.cgi/tech/1644744972/932
933: デフォルトの名無しさん [sage] 2023/11/12(日) 04:03:18.80 ID:jdIWedpQ powershellでデフォルトの環境に手を加えないとできないことは他のPG言語に任せるべきだと思う http://mevius.5ch.net/test/read.cgi/tech/1644744972/933
934: デフォルトの名無しさん [sage] 2023/11/12(日) 12:28:59.88 ID:mJhoQ9VQ Windows PowerShell 5.1 と PowerShell 7.x の相違点 ttps://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.3 入れる入れないは個人の自由 5と7は共存できるし別にデメリットないから7入れてるよ http://mevius.5ch.net/test/read.cgi/tech/1644744972/934
935: デフォルトの名無しさん [sage] 2023/11/12(日) 16:32:02.61 ID:K6g/AyoW スクリプト言語としてならどっちでもいいけど インタラクティブなコマンドラインシェルとしてなら7が圧倒的に便利 sjis出力コマンドとutf-8出力コマンドの混在環境なら7.4でさらに便利 http://mevius.5ch.net/test/read.cgi/tech/1644744972/935
936: デフォルトの名無しさん [sage] 2023/11/12(日) 21:46:23.90 ID:q3mytz3V >>935 シェルとしてどんな点が改善されているのですか? http://mevius.5ch.net/test/read.cgi/tech/1644744972/936
937: デフォルトの名無しさん [sage] 2023/11/15(水) 00:20:29.90 ID:oV9ZzUgm 半角英数のファイルにUTF-16を追加する事故が起きないのは助かる http://mevius.5ch.net/test/read.cgi/tech/1644744972/937
938: デフォルトの名無しさん [sage] 2023/11/15(水) 23:34:51.35 ID:Ik7Afwvr 最近始めたんですが http://mevius.5ch.net/test/read.cgi/tech/1644744972/938
939: デフォルトの名無しさん [sage] 2023/11/15(水) 23:40:29.80 ID:Ik7Afwvr aに1代入したいんですがどうすればいいですか? function hoge(){ [int]$a; function moge(){ $this.a = 1; } moge; return $a; } hoge # http://mevius.5ch.net/test/read.cgi/tech/1644744972/939
940: デフォルトの名無しさん [sage] 2023/11/16(木) 09:22:30.17 ID:HndTNurg ・classのメソッドとして書く(何か知らんがレキシカルスコープになる) ・javascriptを使う http://mevius.5ch.net/test/read.cgi/tech/1644744972/940
941: デフォルトの名無しさん [sage] 2023/11/16(木) 10:09:03.23 ID:vDdnsPkv Get-Variable とか >>475,898 とか $script:a とか。 なお「[int]$a」では宣言できてない。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/941
942: デフォルトの名無しさん [sage] 2023/11/16(木) 12:06:19.94 ID:HndTNurg ref[]はpowerahellにおいてCポインタ程度には重要知識なのに 界隈で然程語られる事もなく知られていない 知られてはいけないとでも言うのだろうか… http://mevius.5ch.net/test/read.cgi/tech/1644744972/942
943: デフォルトの名無しさん [sage] 2023/11/16(木) 13:08:37.33 ID:evZ76lXK 何言ってんだか http://mevius.5ch.net/test/read.cgi/tech/1644744972/943
944: デフォルトの名無しさん [sage] 2023/11/16(木) 13:38:46.26 ID:WvJyjQhC >>940 とあるオブジェクトの初期設定にこんな感じで書いてたんですが無理そうですか 了解しました class hoge:object{ [object]$o_a; [object]$o_b; hoge (){ [int] $cnt; function object_a_init(){ $this.cnt = 1; } object_a_init; } } http://mevius.5ch.net/test/read.cgi/tech/1644744972/944
945: デフォルトの名無しさん [sage] 2023/11/16(木) 15:17:07.39 ID:FRf+5dUd 親スコープにある変数の値を変えたいなら Set-Variable -Name a -Value 1 -Scope 1 http://mevius.5ch.net/test/read.cgi/tech/1644744972/945
946: デフォルトの名無しさん [sage] 2023/11/16(木) 17:00:58.20 ID:HndTNurg >>944 >>941をよく読んだ方がいいよ 昔の俺のレスの引用だけどね 変数の型指定は値で初期化する必要があるよ http://mevius.5ch.net/test/read.cgi/tech/1644744972/946
947: デフォルトの名無しさん [sage] 2023/11/16(木) 17:15:32.66 ID:JFk7nC9m 横からすいません なんでこれはエラーになるんでしょうか pwsh -nop -c "[System.Text.Encoding]::GetEncoding(932)" -c を使わずに pwsh -nop と起動して [System.Text.Encoding]::GetEncoding(932) を入れると動くのもわからない・・・ http://mevius.5ch.net/test/read.cgi/tech/1644744972/947
948: デフォルトの名無しさん [sage] 2023/11/16(木) 18:13:00.55 ID:vDdnsPkv エラーって何のエラーなの http://mevius.5ch.net/test/read.cgi/tech/1644744972/948
949: デフォルトの名無しさん [sage] 2023/11/16(木) 20:12:17.64 ID:JFk7nC9m MethodInvocationException: Exception calling "GetEncoding" with "1" argument(s): "No data is available for encoding 932. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method." だそうです http://mevius.5ch.net/test/read.cgi/tech/1644744972/949
950: デフォルトの名無しさん [sage] 2023/11/16(木) 20:17:57.10 ID:JFk7nC9m Encoding.RegisterProvider でぐぐったら解決しました http://mevius.5ch.net/test/read.cgi/tech/1644744972/950
951: デフォルトの名無しさん [sage] 2023/11/16(木) 22:05:45.00 ID:wYK3pDi3 >>939を動くように直したげたよ function hoge(){ [int]$a = "1" # $aを値で初期化しつつ型を強制。型宣言というよりキャストに相当。[int]に強制されるので値が文字列でも$aにはSystem.Int32に変換された値が入る $a.GetType() | Write-Host # $aの値の型をコンソールに出力 System.Int32 function moge(){ ([ref]$a).Value = 1 # >>941-942の言うブロックで変数を生成せず既存の変数を参照して値を代入する記法 } moge $a #
関数の打ち切りの意図を除きreturnキーワード不要。powershellのfuncitonは最後に限らず値を返す式は全部返そうとする } hoge http://mevius.5ch.net/test/read.cgi/tech/1644744972/951
952: デフォルトの名無しさん [sage] 2023/11/17(金) 11:55:26.61 ID:i3gkpHOP >>939 参照渡しでやってみれば? -------- function hoge { [int] $a = 1234 function moge { param ( [ref] $b ) $b.Value = 5678 } moge -b ([ref] $a) return $a } hoge -------- about_Ref https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_ref?view=powershell-7.3 http://mevius.5ch.net/test/read.cgi/tech/1644744972/952
953: デフォルトの名無しさん [sage] 2023/11/17(金) 14:37:28.42 ID:05VltA/O PowerShell 7.4 General Availability https://devblogs.microsoft.com/powershell/powershell-7-4-general-availability/ PSNativeCommandPreserveBytePipe 待ってた! http://mevius.5ch.net/test/read.cgi/tech/1644744972/953
954: デフォルトの名無しさん [sage] 2023/11/17(金) 20:30:46.86 ID:Wtzmq/3L リンク先読んでないけど、.exeにパイプしたときに早くなる(普通になる)のかな http://mevius.5ch.net/test/read.cgi/tech/1644744972/954
955: デフォルトの名無しさん [] 2023/11/20(月) 14:11:07.62 ID:HI5+Omcp 文字列を8文字ごとに分割して配列に格納したいのですが 文字列が8文字以下だと1文字ずつ分割されてしまいます。 $nums = @() $nums = $num -split '(.{1,8})' | Where-Object{$_} 上記を実行すると、 $num = 12345678 のとき、$num[0] は 1が格納されるのですが、 12345678が格納されるようにするには、どうすればよいでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/955
956: デフォルトの名無しさん [sage] 2023/11/20(月) 14:50:35.31 ID:HI5+Omcp >>955 すみません。誤字です。 誤: $num[0] は 1が格納されるのですが、 正: $nums[0] は 1が格納されるのですが、 http://mevius.5ch.net/test/read.cgi/tech/1644744972/956
957: デフォルトの名無しさん [sage] 2023/11/20(月) 15:52:48.41 ID:fHSnLnjq $numsには文字列の"12345678"が代入されてるから $nums[0]だと"12345678"の1文字目の1が返る 1行目を [string[]]$nums = @() とするか 2行目を $nums = @(12345678 -split '(.{1,8})' | Where-Object{$_}) とすればOK http://mevius.5ch.net/test/read.cgi/tech/1644744972/957
958: デフォルトの名無しさん [] 2023/11/20(月) 17:23:25.47 ID:HI5+Omcp >>0957 ありがとうございます! できました。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/958
959: デフォルトの名無しさん [sage] 2023/11/21(火) 21:09:20.96 ID:qJoihvDX PowerShell 7.4 だと PS> python -c 'print("\\")' \ と期待通りになるけど Windows PowerShell 5.1 だと PS> python -c 'print("\\")' File "<string>", line 1 print(\) ^ SyntaxError: unexpected character after line continuation character となるのは何が起きてるの? 7.4 でも $PSNativeCommandArgumentPassing を Legacy にすると同じみたいだけど 具体的にどうなってるのか今更だけど知ってお
きたい http://mevius.5ch.net/test/read.cgi/tech/1644744972/959
960: デフォルトの名無しさん [sage] 2023/11/21(火) 21:20:45.10 ID:CeBFd4j1 >>959 解析の停止:--% https://learn.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847892%28v=wps.640%29#%E8%A7%A3%E6%9E%90%E3%81%AE%E5%81%9C%E6%AD%A2-- http://mevius.5ch.net/test/read.cgi/tech/1644744972/960
961: デフォルトの名無しさん [sage] 2023/11/21(火) 22:46:00.10 ID:qJoihvDX 対処法が知りたいんじゃなくてどう解析されたかが知りたい http://mevius.5ch.net/test/read.cgi/tech/1644744972/961
962: デフォルトの名無しさん [sage] 2023/11/21(火) 22:57:00.47 ID:wGZJ97Pn コマンドラインのパース内容をデバッグできるコマンドレットがあって inactionで紹介されてた気がするけど何か思い出せない http://mevius.5ch.net/test/read.cgi/tech/1644744972/962
963: デフォルトの名無しさん [sage] 2023/11/22(水) 00:52:11.84 ID:z2bY/yQG $PSVersionTable PSVersion 5.1 Ruby の1-liner では、%Q 記法があるから大丈夫 ruby -e 'print %Q(\\)' \ ruby -e 'print %Q(あaい)' あaい http://mevius.5ch.net/test/read.cgi/tech/1644744972/963
964: デフォルトの名無しさん [sage] 2023/11/22(水) 04:23:14.63 ID:nZzIGDLb >>962 Get-Command | sls "breakpoint|callstack" デバッガーについて - PowerShell | Microsoft Learn ttps://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_debuggers?view=powershell-5.1 http://mevius.5ch.net/test/read.cgi/tech/1644744972/964
965: デフォルトの名無しさん [sage] 2023/11/22(水) 10:26:54.20 ID:Yh77KGhz >>964 回答ありがとう、でも思い出せないのは>>959の流れからの「コマンドラインのパース」自体の事だったんだ。 in Action引っ張り出して確認したが↓の事で、これで違いが分かるかも。(v7.4で確認してない。) Trace-Command -Option All NativeCommandParameterBinder -PSHost {python -c 'print("\\")'} http://mevius.5ch.net/test/read.cgi/tech/1644744972/965
966: デフォルトの名無しさん [sage] 2023/11/22(水) 10:52:24.03 ID:Yh77KGhz 他に、形態素解析みたいに分解・解析できる機能もあった気がするが忘れた http://mevius.5ch.net/test/read.cgi/tech/1644744972/966
967: デフォルトの名無しさん [sage] 2023/11/22(水) 14:18:25.39 ID:W8vcuvaF PowerShell 7.4 だと python -c 'print("\\")' ですむことを Windows PowerShell 5.1 だとどう書けばいいんだ --% を使っても使わなくても分からん http://mevius.5ch.net/test/read.cgi/tech/1644744972/967
968: デフォルトの名無しさん [sage] 2023/11/22(水) 15:05:51.75 ID:fKGlzN6D パラメータの干渉受けたくないなら普通にStart-Processでいいでしょ http://mevius.5ch.net/test/read.cgi/tech/1644744972/968
969: デフォルトの名無しさん [sage] 2023/11/22(水) 15:26:30.66 ID:W8vcuvaF 対話シェルでStart-Processするのはつらい http://mevius.5ch.net/test/read.cgi/tech/1644744972/969
970: デフォルトの名無しさん [sage] 2023/11/22(水) 15:34:55.56 ID:W8vcuvaF つらいのは我慢するとしてStart-Processを使ってどう書けばいいの http://mevius.5ch.net/test/read.cgi/tech/1644744972/970
971: デフォルトの名無しさん [sage] 2023/11/22(水) 20:54:48.61 ID:5rDf7evN pythonの引用符はシングルもダブルもエスケープシーケンス展開されるからおかしな解釈になってるだけだな pythonの仕様を呪うがいい http://mevius.5ch.net/test/read.cgi/tech/1644744972/971
972: デフォルトの名無しさん [sage] 2023/11/22(水) 22:06:38.07 ID:W8vcuvaF pythonは例として使っただけだしどうでもいいよ あくまで興味の対象はPowerShellのコマンドラインのパース やっぱ 7.4 すげぇで終わってもいいんだけど なんか 7.4 の --% が腐ってる気がする 5.1 の想定通りの --% と違って勝手に引用符加えてぶっ壊してる感じ はやいとこ直して欲しい http://mevius.5ch.net/test/read.cgi/tech/1644744972/972
973: デフォルトの名無しさん [sage] 2023/11/22(水) 22:37:16.49 ID:5rDf7evN うーんどうでもいい変なの相手しちゃった http://mevius.5ch.net/test/read.cgi/tech/1644744972/973
974: デフォルトの名無しさん [sage] 2023/11/23(木) 17:39:38.00 ID:Rimm12ii いやわかんないなら別にいいけど一応書いとくわ もちろん 7.4 を Windows で使う話 stop-parsing token (--%) は以後のパースをしないはずなのに 引用符無視して空白で引数を分割してコマンド起動してるっぽい CreateProcessまでに引用符が変に補完されるから意図通り動かない --% が出てきたら引数の分割はネイティブコマンドに任せないとあかん $PSNativeCommandArgumentPassing が Legacy の時と同じ処理な そういうわけで Legacy 扱いされる .cmd とかでは問題な
い おかしいのは Standard 扱いされる .exe なんかの場合だけ PSNativeCommandArgumentPassing の説明 >この実験的な機能が有効になっていると、PowerShell は、ネイティブの実行可能 >ファイルを呼び出すときに、文字列を再構築する現在の機構ではなく、 >StartProcessInfo オブジェクトの ArgumentList プロパティを使用します。 にある、文字列を再構築するのが Legacy、Argumentlist を使うのが Standard という違いがわかれば理解できる話なんだが期待はしてない http://mevius.5ch.net/test/read.cgi/tech/1644744972/974
975: デフォルトの名無しさん [] 2023/11/23(木) 22:03:41.74 ID:KHOftQWe Powershellを体系的に学ぶにあたっておすすめの本ってありますか? やりたいことをググってコードをコピペして使用してる状態で、コードの理解度が深まらないと思ったので体系的に学びたいと思いました。 自分のPowershellの用途は、日常的な作業の自動化(テキストファイルの読み書き、ファイルの起動やタスキル、アクティブウィンドウの切り替え、robocopyでのバックアップなど)で使っています。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/975
976: デフォルトの名無しさん [sage] 2023/11/23(木) 22:45:32.85 ID:38VIgpCL 馬鹿には無理 http://mevius.5ch.net/test/read.cgi/tech/1644744972/976
977: デフォルトの名無しさん [sage] 2023/11/23(木) 23:00:45.15 ID:09UkZirn Windows PowerShell in Action Third Editionは読んだかね https://sd.blackball.lv/library/Windows_PowerShell_in_Action_3rd_Edition_(2017).pdf ただしこの本は6年前の情報。英語PDFだけど今は色々と翻訳手段もあるから読めると思う powershellならWindows上の事であれば大抵の事はできるけど 本当に便利に使うならC#や.NETの前提知識があった方がいいだろうね C#関連で可能な事ならほぼpowershellに置き換え可能だから http://mevius.5ch.net/test/read.cgi/tech/1
644744972/977
978: デフォルトの名無しさん [sage] 2023/11/24(金) 00:12:01.77 ID:kL+9jaCp Powershell で複雑なものは書けないから結局、Ruby になる。 WSL2, Linux側からなら、Windows側をいじれるし http://mevius.5ch.net/test/read.cgi/tech/1644744972/978
979: デフォルトの名無しさん [sage] 2023/11/24(金) 03:38:21.50 ID:k2LHl+dn rubyガイジなんだろうけどそこでrubyになるのは贔屓目に見てもおかしいだろ http://mevius.5ch.net/test/read.cgi/tech/1644744972/979
980: デフォルトの名無しさん [] 2023/11/24(金) 05:42:11.56 ID:IciYTcVm >>975 コードをコピーしてchatGPTかPerplexityで「PowerShellで"〜〜〜"はどういう意味?」を聞けばいい http://mevius.5ch.net/test/read.cgi/tech/1644744972/980
981: デフォルトの名無しさん [] 2023/11/24(金) 13:14:03.37 ID:4NGqTzL9 >>975 「PowerShell実践ガイドブック」は、PowerShellの動作の仕組みが詳しく解説されていてよかった 謎に思える挙動についても説明がある ちょっと古いが(5年半前に出版) http://mevius.5ch.net/test/read.cgi/tech/1644744972/981
982: デフォルトの名無しさん [sage] 2023/11/25(土) 12:02:22.73 ID:pLnatqec microsoft learn じゃダメなの? ttps://learn.microsoft.com/ja-jp/powershell/scripting/how-to-use-docs?view=powershell-7.4 ttps://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about?view=powershell-7.4 http://mevius.5ch.net/test/read.cgi/tech/1644744972/982
983: デフォルトの名無しさん [sage] 2023/11/25(土) 18:06:48.53 ID:wD6fmxci MSの自動翻訳は5分と読んでられない http://mevius.5ch.net/test/read.cgi/tech/1644744972/983
984: デフォルトの名無しさん [sage] 2023/11/25(土) 18:41:01.39 ID:444pwTGg 英語ページでOK http://mevius.5ch.net/test/read.cgi/tech/1644744972/984
985: デフォルトの名無しさん [sage] 2023/11/25(土) 18:53:18.66 ID:Q+kYJTm7 975です。おすすめのドキュメント教えてくれた方ありがとうございます。 一つ気になったのですが、学習の順番としてはC#もしくは.NETから入ったほうが効率的ですか? 自分がPowershell始めたきっかけがグローバルホットキーをうまく使いたいというのが始まりで、 後述URLのコードをベースに継ぎ足しで書き加えている状態です。 PowerShellとC#でグローバルホットキーを登録する https://qiita.com/minr/items/72b02d673727f9eb4c37 ※自分のC#のレベルはHelloWorld出し
たぐらいまで、.NETについても知識としてほぼ白紙です。 http://mevius.5ch.net/test/read.cgi/tech/1644744972/985
986: デフォルトの名無しさん [sage] 2023/11/25(土) 19:23:35.12 ID:c65Q6uO9 ダボゥクリッコゥで実行出来ない面倒臭いものを誰が使うんですか? http://mevius.5ch.net/test/read.cgi/tech/1644744972/986
987: デフォルトの名無しさん [sage] 2023/11/25(土) 21:21:00.31 ID:2+5b9joX ダブルクリックで実行できたWSHはLOVELETTERワームやら何やらでセキュリティが低いとみなされて非推奨になりましたとさ めでたしめでたし http://mevius.5ch.net/test/read.cgi/tech/1644744972/987
988: デフォルトの名無しさん [sage] 2023/11/26(日) 00:07:05.46 ID:tHVdGucZ 例えば、デスクトップにショートカットを作って、リンク先を以下のようにすると、 ダブルクリックでPowershell を起動して、Ruby でスクリプトを実行する %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe "ruby C:/Users/Owner/Documents/Ruby/a.rb" 初心者はRuby で始めるべき。 C# はRubyの10倍、時間が掛かるし難しい http://mevius.5ch.net/test/read.cgi/tech/1644744972/988
989: デフォルトの名無しさん [sage] 2023/11/26(日) 04:20:48.27 ID:xBck3nSS こんなんに粘着されちゃmatzが気の毒だわな http://mevius.5ch.net/test/read.cgi/tech/1644744972/989
990: デフォルトの名無しさん [] 2023/11/26(日) 07:10:42.58 ID:forkl5ep 同じ民族同士、分断せずに仲良くしろよ DevBlogs - Microsoft Developer Blogs ttps://devblogs.microsoft.com/ http://mevius.5ch.net/test/read.cgi/tech/1644744972/990
991: デフォルトの名無しさん [] 2023/11/26(日) 10:47:01.19 ID:d/KzVdDP MatzはWindowsやC++に興味無いから よほどエゴサでもしないかぎり気の毒なことにはならないわ 知らぬが仏 http://mevius.5ch.net/test/read.cgi/tech/1644744972/991
992: デフォルトの名無しさん [sage] 2023/11/26(日) 15:25:10.25 ID:06WEnIxy う http://mevius.5ch.net/test/read.cgi/tech/1644744972/992
993: デフォルトの名無しさん [sage] 2023/11/26(日) 15:25:17.90 ID:06WEnIxy め http://mevius.5ch.net/test/read.cgi/tech/1644744972/993
994: デフォルトの名無しさん [sage] 2023/11/26(日) 15:37:23.40 ID:tLrTLV3h というか、Windowsの日本語localizationのデフォルトが未だにクゾだから、 「☑ベータ: ワールドワイド言語サポートを Unicode UTF-8 を使用」 を最初から標準にしていないかぎり、Windowsを日本語で使うこと自体、クソということになる http://mevius.5ch.net/test/read.cgi/tech/1644744972/994
995: デフォルトの名無しさん [] 2023/11/29(水) 13:21:53.02 ID:FINewHXp 外部コマンドを実行するときに外部コマンド自体は正常な戻り値を返してるのにpowershellで動かすとNativeCommandErrorって例外が出るんだけどなんでだかわかる人おる? http://mevius.5ch.net/test/read.cgi/tech/1644744972/995
996: デフォルトの名無しさん [sage] 2023/11/29(水) 15:06:21.22 ID:UMPQWy8o そういうのはまず再現できるコードを貼ってね http://mevius.5ch.net/test/read.cgi/tech/1644744972/996
997: デフォルトの名無しさん [sage] 2023/11/29(水) 16:09:41.88 ID:0g8RZ7sB ISE上で実行した場合に標準エラー出力があると 戻り値に関係なくNativeCommandErrorになるけど、このこと? そうでなければ>>996にプラスしてバージョンなどの環境も示してね。 あと次スレ https://mevius.5ch.net/test/read.cgi/tech/1701241669/ http://mevius.5ch.net/test/read.cgi/tech/1644744972/997
998: デフォルトの名無しさん [] 2023/11/29(水) 17:02:28.41 ID:FINewHXp >>997 多分それですありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1644744972/998
999: デフォルトの名無しさん [sage] 2023/11/29(水) 18:41:30.81 ID:Emfdd1vJ 質問いいですか http://mevius.5ch.net/test/read.cgi/tech/1644744972/999
1000: デフォルトの名無しさん [sage] 2023/11/29(水) 19:21:40.65 ID:0g8RZ7sB だめです http://mevius.5ch.net/test/read.cgi/tech/1644744972/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 654日 0時間 45分 29秒 http://mevius.5ch.net/test/read.cgi/tech/1644744972/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《UPLIFT会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 4 USD/mon. から匿名でご購入いただけます。 ▼ UPLIFT会員登録はこちら ▼ https://uplift.5ch.net/ ▼ UPLIFTログインはこちら ▼ https://uplift.5ch.net/login
http://mevius.5ch.net/test/read.cgi/tech/1644744972/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s