[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2ch.scのread.cgiへ]
Update time : 12/13 19:01 / Filesize : 192 KB / Number-of Response : 689
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

PowerShell -Part 7



1 名前:デフォルトの名無しさん [2023/11/29(水) 16:07:49.46 ID:0g8RZ7sB.net]
前スレ
PowerShell -Part 6
https://mevius.5ch.net/test/read.cgi/tech/1644744972/

次スレは>>980が立ててね!!

640 名前:デフォルトの名無しさん mailto:sage [2025/11/06(木) 20:55:27.46 ID:ra3gomFv.net]
PowerShell に関するお問い合わせ時の留意事項
https://jpwinsup.github.io/blog/2025/11/06/UserInterfaceAndApps/PowerShell/PowerShell-SupportGuidlines/

641 名前:デフォルトの名無しさん mailto:sage [2025/11/09(日) 01:50:45.56 ID:/5rAS6BZ.net]
>>640
>なお、 .NET Framework や Win32 API は、C#/VB#/C++/C といったプログラム言語からのご利用を目的として提供している機能になり、動作確認もこれらの言語で行っていただくことをお願いしております。
>また、これらの言語で正常に動作しながらも、PowerShell 上で期待通りの動作とならない場合は、プログラミング言語のご利用をお願いしておりますことをご留意ください。

あれれ?
PowerShellでたての頃って.netのオブジェクト使えるの売りにしてなかったかな?

642 名前:デフォルトの名無しさん mailto:sage [2025/11/09(日) 09:43:41.33 ID:9rrS+2ZK.net]
最近の.NETは言語非依存を放棄してるからな
例えばSpanはPowerShellから使えない

Question about System.Span
https://github.com/PowerShell/PowerShell/issues/5897

643 名前:デフォルトの名無しさん mailto:sage [2025/11/09(日) 10:23:37.05 ID:VPZLG56/.net]
.NET Frameworkって書いてあるからCore系の.NETは関係ないでしょ。Core系もサポートの方針は同じだろうけど。
PowerShell6以降のユーザーなんて5に比べりゃほとんどいないだろうし、
わざわざ6以降使ってる人はそんなに変な問い合わせしてこないだろうからサポート的にはあまり問題にならないんだろう

644 名前:デフォルトの名無しさん mailto:sage [2025/11/18(火) 00:02:06.52 ID:mC1Jcub0.net]
c#14でファイルベースでスクリプトライクに書けるようになった
もうpowershellはオワコン!

645 名前:デフォルトの名無しさん [2025/11/18(火) 17:30:44.99 ID:d9hs+rsN.net]
それパイプは直感的に書けるか?

646 名前:デフォルトの名無しさん mailto:sage [2025/11/20(木) 16:43:19.74 ID:11rVJeas.net]
5ってまだ共存してるの?UTF8BOMの問題があるのでcmdでも使えばいい気がするが

647 名前:デフォルトの名無しさん mailto:sage [2025/11/20(木) 17:49:39.55 ID:UDbnkgrO.net]
PowerShellは速度も使い勝手もこのbatに勝てなかった

@echo off
%windir%\Microsoft.NET\Framework64\v4.0.30319\csc.exe /nologo %1
if errorlevel 1 exit /b
"%~dpn1.exe"

648 名前:デフォルトの名無しさん mailto:sage [2025/11/20(木) 21:31:44.69 ID:QY1RnXH9.net]
C#はPowerShellみたいにWMIを簡単に扱えないじゃん

WMI インスタンスの取得
https://learn.microsoft.com/ja-jp/windows/win32/wmisdk/retrieving-an-instance



649 名前:デフォルトの名無しさん mailto:sage [2025/11/21(金) 09:24:25.92 ID:+qc1E8Ol.net]
比較
OS標準だとC#は古いやり方しかできなそう

<PowerShell>
Get-WmiObject -query "SELECT * FROM Win32_Process" | ForEach-Object {
 $name = $_.Name
 $id = $_.ProcessId
 . . .
}

<C#>
foreach (var p in new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_Process").Get())
{
 var name = p["Name"];
 var id = p["ProcessId"];
 . . .
}

650 名前:デフォルトの名無しさん mailto:sage [2025/11/21(金) 10:03:57.43 ID:3+xXClvM.net]
>>640
最初は分けて書いてるがそれ以降のPowershellが
Windows 付かない方のPowershell 限定なのか
Windows 付く方も含めてなのかよくわからない

>>641
無印 は.Net Framework 向けでないという表現なのか
無印も.Net Frameworkだめというのかどっちなのか

.NET Framework上で動くのがWindows Powershell
3.5.1(まだある) + 2(廃止)
4.8.1 + 5.1 現行のプリインストール
.NET 上で動くのがPowershell
core2or3 + 6-7.0
5.0 + 7.1 以降
やはり改めて確認しないとわからない
なんで分かりやすい別の名前にしなかったのか

651 名前:デフォルトの名無しさん [2025/11/22(土) 10:00:08.95 ID:X6U8TT//.net]
WMIって非推奨なんだっけ
普通に業務で使ってるけど

652 名前:デフォルトの名無しさん mailto:sage [2025/11/22(土) 15:21:40.53 ID:LaYCYKWP.net]
Windows クライアントの非推奨の機能
https://learn.microsoft.com/ja-jp/windows/whats-new/deprecated-features

WMIC ユーティリティは非推奨となり、今後の Windows リリースで削除される予定です。 このユーティリティは、WMI のWindows PowerShellに置き換えられます。 この非推奨は、 コマンド ライン管理ユーティリティにのみ適用されます。 WMI 自体は影響を受けません。

653 名前:デフォルトの名無しさん mailto:sage [2025/11/22(土) 19:36:43.52 ID:F8YvH3R6.net]
wmiなくなる話はないが使い方変わってる
Powershell 6以降WMI v1コマンドレット無い
今のところWindows Powershell 無くす話はないが
書き直すならPowershell でCIM (WMI v2)コマンドレットにしておいた方が無難?
https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/differences-from-windows-powershell?view=powershell-7.5#wmi-v1-cmdlets

654 名前:デフォルトの名無しさん mailto:sage [2025/11/26(水) 15:45:38.37 ID:0sOrUy4b.net]
PowerShell のプログラムで時々見かける

 if ( hoge ) {
  hogehoge
 }
 else {
  fugafuga
 }

みたいな
elseのところを2行に書く書き方が気持ち悪いし
PowerShell にコピペでインタプリタ的に実行させると閉じ括弧で構文が終わったと判断されて実行されちゃう
(さらに外側に括弧があれば構文として成り立つけど)

655 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 10:58:01.72 ID:iSxBbXck.net]
オレは気持ち悪いと思ったことない
言語特有の文法とか個人個人の書き方とか色々あるし
それで別にいいじゃんって思ってる
仕事でプログラムやスクリプト使ってる人たちは
その職場のルールもあるだろうけど
素直に従っておけばいいだけ
改良の余地があるなら進言するだけだし

656 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 12:30:08.06 ID:Z/DnqSSi.net]
普通じゃないし普通に気持ち悪いだろ

657 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 12:58:20.26 ID:tq5aNNAF.net]
ベストプラクティスにはそこまで細かい規約なかった
https://learn.microsoft.com/en-us/powershell/scripting/developer/cmdlet/strongly-encouraged-development-guidelines

C#、明示されてないがサンプルは三行
これに準じると閉じてエンターで走る
https://learn.microsoft.com/ja-jp/dotnet/csharp/fundamentals/coding-style/coding-conventions

658 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 15:27:32.59 ID:Z/DnqSSi.net]
普通(既存宗教):
} else {
または
}
else
{

奇形(新興宗教):
}
else {



659 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 15:30:06.19 ID:Z/DnqSSi.net]
>>657
C#とPSは違うだろ
PSのコーディング規約なんてあるのか知らんけど

660 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 15:39:55.59 ID:o+yFQZuV.net]
https://github.com/akiGAMEBOY/PowerShell_mysql-to-csv/blob/master/source/Main.ps1
これは両方の記述が混在してるな

661 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 16:35:40.04 ID:/I+q4k2H.net]
powershell民なら
} else
と書いておく
こうすると解釈が延長するわけでelse節が無ければ次行で
{}
と書いて終わらすこともできる
これはpowershell民に限らず行志向言語の常識的イディオム

662 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 16:51:14.83 ID:o+yFQZuV.net]
>>661
その理由はおかしくないか?
以下のように同様の理屈が成り立つ

}
で終わらせておく
elseで続けたい場合は
else {
で始められる

663 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 16:53:53.08 ID:o+yFQZuV.net]
ああ、インタープリタ的な使い方ってことか

664 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 16:58:55.38 ID:o+yFQZuV.net]
ならとりあえず
} else {
と書いておくほうが良い気がする

665 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 21:48:18.93 ID:L4seW1+I.net]
elseは使わないようにする

666 名前:デフォルトの名無しさん mailto:sage [2025/11/27(木) 23:03:58.47 ID:0ZpriLCv.net]
5.xは三項演算子がないので他の言語よりelseを使う機会が多くなりがち

667 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 10:07:39.92 ID:YEOTrRQk.net]
Weekend Scripter: Best Practices for PowerShell Scripting in Shared Environment
https://devblogs.microsoft.com/scripting/weekend-scripter-best-practices-for-powershell-scripting-in-shared-environment/#use-consistent-indentation
PowerShellのコーディングスタイル
https://tech.guitarrapc.com/entry/2017/12/03/230119

668 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 10:46:55.41 ID:XwmNjHGj.net]
>>667
「ただし、これは、普段どちらで書いているかなどに左右されますし、チームでの共通化がとれていればいいのでしょう。

ちなみに、コミュニティでは、Stroupstrupが意外と多い結果です。」



669 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 11:06:29.89 ID:mxO2kQAk.net]
if 真ならelse の中いかないし
if 偽ならelse の中やりたいし
else 閉じて走るのがまずい状況がすぐに思い浮かばない

670 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 15:12:40.52 ID:XwmNjHGj.net]
これだけアチコチで使われてるとなると新興宗教とは言えない雰囲気

671 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 20:46:10.65 ID:24RBB+24.net]
なんにしろ行志向言語で中括弧を採用すること自体が悪手だったのは間違いない

672 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 21:20:01.11 ID:8z0qQ195.net]
>>667
Stroupstrupって構文スタイルなのか…

しかもちゃんと「式解釈では問題ありませんが、PowerShellにはった時elseでエラーがでます。」って説明まで書いてる

いや、なんでこれが多いんだよ
意味わかんねぇよ…

673 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 21:59:10.04 ID:YEOTrRQk.net]
https://ja.wikipedia.org/wiki/字下げスタイル

ストロヴストルップ・スタイルはビャーネ・ストロヴストルップがC++で使ったK&Rスタイルで、ストラウストラップのプログラミング入門 C++によるプログラミングの原則と実践やThe C++ Programming Languageといった彼の著書で使われている。

前述のスタイルと異なり、cuddled else (elseの前後に}と{を置くスタイル) を使わない。したがってストロヴストルップ式では次のようになる。

if (x < 0) {
puts("Negative");
negative(x);
}
else {
puts("Non-negative");
nonnegative(x);
}

674 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 22:18:41.05 ID:HY2syTcn.net]
誰だよスッポスッポ先生のことふざけた空耳日本語で呼ぶジャップは・・・

675 名前:デフォルトの名無しさん mailto:sage [2025/11/28(金) 23:42:10.29 ID:8z0qQ195.net]
else の後ろに括弧置いてるじゃん…

あ、いやそういう事じゃなくて不都合が発生しうる可能性があるスタイルをわざわざ使うってPowerShellにおいてはバカでしかないと思うって話
自分が良ければそれでいいって事?
少なくともインターネッツに載せるなら可能性が考慮されてなくてダメじゃね?

676 名前:デフォルトの名無しさん [2025/11/29(土) 10:54:08.34 ID:ABxtwAdA.net]
ある人が書いたpowershellで動くスクリプトの書き方が
別の人がpowershellで動かしてエラーが出るのは困るよね
っていう話なの?

677 名前:デフォルトの名無しさん mailto:sage [2025/11/29(土) 12:36:08.79 ID:RVWnFQqp.net]
スタイルだからそれぞれ拘りがあるってだけだろ
そのスタイルで統一されてれば問題ない

678 名前:デフォルトの名無しさん mailto:sage [2025/11/29(土) 14:43:58.37 ID:nY8K5zGd.net]
良いスタイル悪いスタイルがあるのになぜか悪いスタイルが流行ってるって話だろ
そもそもスタイルが分かれるような構文を採用したのがだめなんだけどな



679 名前:デフォルトの名無しさん mailto:sage [2025/11/29(土) 15:48:53.71 ID:RVWnFQqp.net]
おそらくC++から流れてきたんだろうと想像する
>>673にあるプログラミング入門 C++、The C++ Programming Languageが教科書になった人々

680 名前:デフォルトの名無しさん [2025/11/29(土) 16:28:37.98 ID:m7OsZTNV.net]
C/C++のK&R派ではあるけど
文における{}
関数定義における{}
構造体/クラス宣言における{}
namespaceにおける{}
どれも扱いが違う
成形ツール使えばなんとでもなる
PowerShellなんてどうせ描き棄てだからどうでも良い

681 名前:デフォルトの名無しさん mailto:sage [2025/11/29(土) 16:48:02.25 ID:RvNmPLXk.net]
例えば

先輩「PowerShell でこうやって IDE で書くこともできるけど普通に貼り付けて実行も1行ずつ実行する事もできる」

新人「ホントだ!ありがとうございます!」

新人「Windows標準で使えるし家でも勉強がてらやってみよう」
新人「うーん…よく分からない。検索するかぁ」

初心者向けWebサイト「(Stroupstrupスタイルで記述)」

新人「(貼り付けて)あれ?エラーが出る…よく分からない…」

みたいな話

初心者向けWebサイトはチームとかもないし誰が見るかも無いから、Stroupstrupスタイルは適していないってこと

ブログやQiitaとかならまぁええかとは思うし、チーム内で決めて使うならいいと思う

682 名前:デフォルトの名無しさん mailto:sage [2025/11/29(土) 17:02:38.86 ID:SvUt/JNW.net]
} をどんな構文でも常に行末としておき、if と else if を行頭に並べればブロックが対称的に見えるので美しく感じる
そんな理由があるという
けど全然共感できない
ifブロックが単に2つ続いているだけのパターンと、ifとelse ifが続いているパターンを取り違えるのは古典的なバグ
ならcuddled elseのほうがあえて相似形を崩して即座に峻別できるように喚起できるので合理的

683 名前:デフォルトの名無しさん mailto:sage [2025/11/29(土) 18:21:27.95 ID:UB7+qwb1.net]
powershellなんて基本書き捨てだしスタイルなんて気にしたことない
vscodeのフォーマッタ任せ

684 名前:デフォルトの名無しさん mailto:sage [2025/11/29(土) 23:17:33.20 ID:2Vwa6pZU.net]
公式ドキュメントでも
}
else {
になってるな

about_If
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_if

685 名前:デフォルトの名無しさん [2025/11/30(日) 14:27:29.65 ID:+PAfB5o2.net]
}
else{
でしか理解出来ないってのは池沼

686 名前:デフォルトの名無しさん mailto:sage [2025/12/04(木) 00:02:31.58 ID:FQN2sxAz.net]
そういえばChromeとかFireFoxの開発者ツール画面のPowerShellでコピーっていつの間についてたのかしら
社内のしょうもないシステムのデータ落とすだけならマジでRPAとかいらんな

687 名前:デフォルトの名無しさん mailto:sage [2025/12/10(水) 08:52:12.78 ID:aQIrInSg.net]
PowerShell 5.1: Web コンテンツからのスクリプト実行の防止
https://support.microsoft.com/ja-jp/help/5074596

688 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 09:00:26.27 ID:qbXRYm+Y.net]
「Windows PowerShell 5.1」に「IE」要素排除のための仕様変更
「Invoke-WebRequest」に警告を追加、2025年12月のセキュリティパッチ以降の適用で
https://forest.watch.impress.co.jp/docs/news/2070166.html








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<192KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef