[表示 : 全て 最新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が立ててね!!

2 名前:デフォルトの名無しさん mailto:sage [2023/11/29(水) 20:26:02.61 ID:aabs5txO.net]
ドライバのinfファイルに署名がない古いハードを使うために
オレオレ証明書を作って勝手に署名する方法があるが
ググって出る手順のままではダメでいまはWindows Design KitとWindows SDKが必要で
SDKにあるmakecertコマンドはマイクロソフト公式に推奨されないとも…
PowerShellでできるからということらしいがどう使ったら同じ結果になるかはわからなかった
makecertのような非推奨コマンドと1対1のPowerShellでの使用例ってどこかにないだろうか
今後同じような事態に陥った時のため備えておきたい
マイクロソフトのサイトにはオプションの説明はあるけど
makecertとの対比表とかはない

3 名前:デフォルトの名無しさん mailto:sage [2023/11/30(木) 19:34:57.73 ID:4nwqW1NG.net]
powershell関係あるのかしら
古い環境そのものやP2V化して動作確認取れる環境を保存していくのが簡単だよ
ドライバへの署名はあくまで1企業の都合という事をお忘れなく

4 名前:デフォルトの名無しさん [2023/12/01(金) 21:00:19.47 ID:0gNLMIqi.net]
直下にあるファイルをgciの-Includeでフィルタリングしつつ取得する際に
Get-ChildItem -Include *hoge*.txt
はだめで
Get-ChildItem -Recurse -Include *hoge*.txt
-Recurseを入れると動くのはなぜですか?
サブディレクトリを含まない直下のみのファイル検索なら-Recurseなしでもいける認識なんですが間違ってますか

5 名前:デフォルトの名無しさん mailto:sage [2023/12/01(金) 21:20:55.43 ID:Jz3SJDE5.net]
>>4
gciで-Includeを使う場合gciに与えるデフォルト引数としてアスタリスク「*」を含んだパス名が必要なんだよ特に書いてないけど
つまり「Get-ChildItem -Include *hoge*.txt *」で意図通りになるはず
というかね、-Includeなんか忘れていい。フィルタならwhere-objectでやった方が判りやすい
gci | where Name -like "*hoge*.txt"
コマンドレットは変な仕様が多いから妙だな…と思ったらそれ以上深入りする必要はない

6 名前:デフォルトの名無しさん mailto:sage [2023/12/01(金) 22:24:22.03 ID:nrjrox6C.net]
そもそもワイルドカードの単純なフィルタならデフォルトの-pathでできるから-includeとか基本使わないな

learn見たら「-includeは-pathの末尾が*じゃないと動かない(-recurseなら省略可)」ってはっきり書いてたわ

7 名前:デフォルトの名無しさん mailto:sage [2023/12/01(金) 22:30:34.62 ID:S2lEQVa3.net]
ファイルシステム側に検索オプションを指定するのが-Filterで
PowerShell自信でフィルタリングするのが-Includeだっけ、懐かしい話だ

8 名前:デフォルトの名無しさん mailto:sage [2023/12/02(土) 08:48:18.48 ID:Fkw0aBk3.net]
gciの表示が間延びしてるのを詰めたい
ModeとLastWriteTimeにあんなに幅いらんやろ

9 名前:デフォルトの名無しさん [2023/12/02(土) 20:49:53.53 ID:CMdctbaC.net]
4ですみなさんありがとうございます
当然質問する前にLearnで確認していたのですが、てっきりワイルドカードも使えるよ!ぐらいのニュアンスだと思っていました
大人しくwhere-object使います。すっきりしましたm(_ _)m

10 名前:デフォルトの名無しさん mailto:sage [2023/12/02(土) 21:42:01.24 ID:B4ObjCpy.net]
>>8
Format-Table -AutoSize



11 名前:デフォルトの名無しさん mailto:sage [2023/12/03(日) 07:28:03.75 ID:tKLbRUl7.net]
すまんコマンド追加で整形したいんじゃない
デフォルトの形式をいじりたい

12 名前:デフォルトの名無しさん mailto:sage [2023/12/03(日) 09:12:08.68 ID:GWzH2m5A.net]
about_Format.ps1xml
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_format.ps1xml

13 名前:デフォルトの名無しさん mailto:sage [2023/12/03(日) 09:40:08.91 ID:tKLbRUl7.net]
Get-FormatData -TypeName 'System.IO.*' -PowerShellVersion $PSVersionTable.PSVersion | Export-FormatData -Path fd.ps1xml
gc .\fd.ps1xml | % { $_ -replace '7', '5' } | % { $_ -replace '26', '20' } | % { $_ -replace '14', '12' } > fd-mod.ps1xml
Update-FormatData -PrependPath .\fd-mod.ps1xml

としてみたら全然違う結果になってしまった
出てきたものの数字を変えるだけじゃだめなのかな

14 名前:デフォルトの名無しさん mailto:sage [2023/12/03(日) 13:55:42.15 ID:tKLbRUl7.net]
なぜTable形式でなくList形式になるのでしょうか

15 名前:デフォルトの名無しさん mailto:sage [2023/12/03(日) 17:41:11.89 ID:tKLbRUl7.net]
ファイルとディレクトリが混ざってるからだった
あとは日付と時刻を詰めたい

16 名前:デフォルトの名無しさん [2023/12/05(火) 09:46:48.52 ID:RGe8cD49.net]
引数付きエイリアスの作り方を教えてください

'ABC' > file
tar -c -f - file | tar -x -O -f - file

の 「tar -x -O -f」 をエイリアス tarout にして

tar -c -f - file | tarout - file

として使うにはどうするのでしょうか

17 名前:デフォルトの名無しさん mailto:sage [2023/12/05(火) 14:36:11.77 ID:lXd0pnoy.net]
できない
そういうのはfunctionとかfilter作ってやる

18 名前:デフォルトの名無しさん mailto:sage [2023/12/05(火) 14:53:09.61 ID:7QjuGoaz.net]
パラメーターを持つコマンドの代替名
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_aliases#alternate-names-for-commands-with-parameters

19 名前:デフォルトの名無しさん [2023/12/05(火) 15:54:15.98 ID:RGe8cD49.net]
そこまではたどり着いたのですが苦戦しています
正直言って手も足も出ません
どうすればよいのでしょうか

20 名前:デフォルトの名無しさん mailto:sage [2023/12/05(火) 21:04:00.28 ID:rxI6O073.net]
何がしたいのか知らんけどpowershellのパイプはオブジェクトに変換しないとだからtarが期待する入出力にはならんだろうな
ほれ
function tarout {
tar -x -O -f $args
}
tarout - file



21 名前:デフォルトの名無しさん mailto:sage [2023/12/05(火) 21:27:27.93 ID:7QjuGoaz.net]
>powershellのパイプはオブジェクトに変換しないとだからtarが期待する入出力にはならんだろうな

PSNativeCommandPreserveBytePipe
https://learn.microsoft.com/ja-jp/powershell/scripting/learn/experimental-features#psnativecommandpreservebytepipe

22 名前:デフォルトの名無しさん [2023/12/05(火) 21:47:53.20 ID:RGe8cD49.net]
>>0020
それは最初に自分で試してだめだったやつですな
パイプでなく標準入力を読もうとしてCtrl-Z待ちで止まるやつ
Windows 10 から tar.exe あるんで試してから回答してもらえると嬉しい

>>0021
PowerShellからネイティブは通る
ネイティブからネイティブは通る
ネイティブからPowerShellは通らない
だからPowerShellでtaroutは書けないってこと?
だとしたらPowerShellくそすぎる

23 名前:デフォルトの名無しさん [2023/12/06(水) 09:58:34.06 ID:pwwMUfVm.net]
一応整理

PS 1> 'Success' > testfile
PS 2> tar -c -j -f test.tar.bz2 testfile
PS 3> Get-Content -Path test.tar.bz2 -AsByteStream | tar -x -O -f - testfile
Success
PS 4> tar -c -j -f - testfile | tar -x -O -f - testfile
Success
PS 5> . { tar -c -j -f - testfile } | tar -x -O -f - testfile
tar.exe: Error opening archive: bzip decompression failed

PowerShellからのバイトストリームはネイティブに通る (PS 3>)
ネイティブからネイティブもバイトのまま壊れずに通る (PS 4>)
ネイティブからPowerShell(経由でネイティブ)は通らない (PS 5>)

だからPowerShellでtaroutは書けない
Start-Processで頑張れば書けるのかもしれない、知らんけど
進歩はしたがtarout程度に苦労多すぎなPowerShellはくそ

24 名前:デフォルトの名無しさん mailto:sage [2023/12/07(木) 08:28:41.09 ID:c+XrIY2G.net]
beginブロックで$inputを使うとバイトストリームが出てくるようになって欲しい
そしたらtaroutもこう書けるようになるのに

function tarout { begin { $input | tar -x -O -f $args }}

でもこれは難しいだろうな

25 名前:デフォルトの名無しさん mailto:sage [2023/12/07(木) 15:51:22.78 ID:X0+oSYJ4.net]
beginじゃない別のキーワード用意するレベルじゃないと難しいだろうなぁ

26 名前:デフォルトの名無しさん mailto:sage [2023/12/08(金) 08:18:26.16 ID:tWmRPca2.net]
いやbeginブロックで十分でしょ
今はbeginブロックの$inputは無意味なんだから有効活用

難しいと思うのは
・beginブロックに$inputがあったら、そのfunction,ScriptBlockにパイプでバイトよこせマークをつける
・バイトよこせマークがあったらパイプラインでネイティブコマンド扱いしてバイトを流す
処理が必要だからで・・・難しく・・・な・・・い、かも

27 名前:デフォルトの名無しさん mailto:sage [2023/12/08(金) 08:33:10.45 ID:xElvY7bj.net]
本気で難しくないと思うならお前が実装してPR送れよ

28 名前:デフォルトの名無しさん mailto:sage [2023/12/08(金) 20:15:49.14 ID:8rS6bPls.net]
公式で7.3にもなって直してないんじゃそんなのを気にしてるのは少数派なんだろ
むしろお前が動くしかなかろうよ

29 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 13:31:46.58 ID:F2smNVkX.net]
個人的にはpythonのライブラリ群をそのままPSObjectにぶっこ抜きして動かせるようにして欲しい

30 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 15:21:51.18 ID:NdJUV/GZ.net]
Python - Support · Issue #19418
https://github.com/PowerShell/PowerShell/issues/19418



31 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 18:40:01.66 ID:F2smNVkX.net]
>>30
なんかそのスレッドはpython使いの声がでかいのかpython主導でpython起動すりゃいいだろ的な話がされてて俺の意図とは違うな
俺の考えはそれとは真逆でpythonの便利ライブラリだけpowereshellで拝借してキモいpython処理系自体を入れたくないのよね
俺の言いたいこと判るよね

32 名前:デフォルトの名無しさん [2023/12/09(土) 18:46:30.00 ID:iYG1bkmj.net]
キモいpython処理www
キモいのはpowershellじゃぼけww

33 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 19:18:53.30 ID:F2smNVkX.net]
>>32
たしかにpowershellもキモいと言えばそうだがpythonとはキモさのベクトルが違うんだよ
>>30にはいい事も書いてある
>PowerShell チームに対して、これらの Python ライブラリをネイティブ PowerShell パッケージの一部として直接実装するよう求めているのであれば、私は同意しなければなりません。
いずれこういう俺と同じ考えを持つ輩がpythonライブラリのぶっこ抜きに成功し
キモいpython処理系が駆除された明るい未来を創り上げてくれる事に期待している

34 名前:デフォルトの名無しさん [2023/12/09(土) 20:18:03.05 ID:P3Dp1Ib1.net]
$null | %{'hoge'+$_}

これでなんでhogeが出力されるんですか?
Nullになるかとおもったんですが

35 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 21:01:47.88 ID:2orRcob9.net]
型を合わせるために、NULLが空文字に変換されるから。

そこでNULLを期待するのはRDBとかの場合だね。(RDBにもよるけど。)

36 名前:デフォルトの名無しさん mailto:sage [2023/12/09(土) 21:38:52.15 ID:NdJUV/GZ.net]
https://learn.microsoft.com/ja-jp/powershell/scripting/lang-spec/chapter-06?view=powershell-7.3#68-conversion-to-string

string 型に値を変換する規則は次のとおりです。

・null 型の値は、空の文字列に変換されます。

37 名前:デフォルトの名無しさん [2023/12/09(土) 21:38:52.87 ID:P3Dp1Ib1.net]
>>35
なるほど
ありがとうございます

ためしに
$null | %{$_+$hoge}
にしたらNullになりました
+演算子の左辺の型に合わせて右が型変換されるんですね

…PowerShellは難しい

38 名前:デフォルトの名無しさん [2023/12/09(土) 21:42:29.77 ID:P3Dp1Ib1.net]
>>36
ありがとうございます

39 名前:デフォルトの名無しさん mailto:sage [2023/12/13(水) 09:57:50.32 ID:RVDAjcVA.net]
PowerShellでファイルの詳細なプロパティを編集することってできますか?
評価とかタグとか下のurlに載っている300種類ぐらいの拡張プロパティです
Windows プロパティ - Win32 apps | Microsoft Learn
https://learn.microsoft.com/ja-jp/windows/win32/properties/props

プロパティの取得だけなら
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$Getfolder = $shell.Namespace($folder)
$Getfile = $Getfolder.ParseName($file)
$Getfile.ExtendedProperty("System.SimpleRating")
これでできたんですけど
プロパティの編集方法は色々調べてみたんですがわかりませんでした

40 名前:デフォルトの名無しさん mailto:sage [2023/12/13(水) 21:26:19.77 ID:SOLvnyCP.net]
https://www.powershellgallery.com/packages/PSSystemProperties/



41 名前:デフォルトの名無しさん mailto:sage [2023/12/13(水) 23:49:36.01 ID:RVDAjcVA.net]
>>40
インストールでちょっとつまづいちゃいましたが
やりたいことができました ありがとうございます!

42 名前:デフォルトの名無しさん mailto:sage [2023/12/14(木) 03:02:02.55 ID:EBZTu/MN.net]
中見たら7時代のWindows-API-Code-Packとやらを拾ってきて使うのか
本来シェル名前空間からやれそうな事なのにWritePropertyへ辿りつくまでかなり遠回りしたな

43 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 07:36:27.61 ID:t4fIwjDl.net]
tiktok liteでPayPayやAmazon券などに交換可能な4000円分のポイントをプレゼント中!
※既存tiktokユーザーの方はtiktokからログアウトしてアンインストールすれば可能性あり
     
1.SIMの入ったスマホかタブレットを準備。
2.以下のtiktok liteのサイトからアプリをダウンロード(ダウンロードだけでまだ起動しない)
https://lite.tiktok.com/t/ZSNfstbHc/
3.ダウンロード完了後、もう一度上記アドレスのリンクからアプリへ
4.アプリ内でtiktokで使用してない電話番号かメールアドレスから登録
5.10日間連続のチェックイン(←重要!)で合計で4000円分のポイントゲット

ポイントはPayPayやAmazon券に交換できます!
家族・友人に紹介したり、通常タスクをこなせば更にポイントを追加でゲットできます

44 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 07:52:34.43 ID:fGCT2KhW.net]
ps1ファイルをユーザーに手軽に実行してもらう方法ってないですかね

batだと単にダブルクリックするだけでいいところが、
ps1だとショートカット作って↓↓をくっつけてと、とても運用に耐えられないんですが
「powershell.exe -ExecutionPolicy Unrestricted 」

45 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 08:42:06.64 ID:5tZpbEW3.net]
>>43
これならできそう

46 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 09:34:51.52 ID:pgUnJUCg.net]
>>44
ググればバッチファイルにPowerShellスクリプトを埋め込む方法が見つかるよ

47 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 10:07:55.43 ID:fGCT2KhW.net]
>>46
ps1単独で解決できないものか
将来性を考えて、ps1使ってみようと思ったが、
バッチやvbsの助けがないと使いにくいんじゃイマイチだな

48 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 10:42:25.24 ID:nDmmdgrP.net]
ps1はコード署名して、グループポリシーで証明書配付しよう

49 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 12:13:16.06 ID:fGCT2KhW.net]
>>48
そこまでするなら、スクリプトよりexe作った方が早・・・

50 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 12:35:03.91 ID:K5lUjnCI.net]
>>43
やってみない手はない



51 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 16:03:42.74 ID:XRhqtdk+.net]
埋め込むやつって結局iex経由の特殊環境だから一部の変数とか使えなくて困る
無理に使わなくていいよ

52 名前:デフォルトの名無しさん mailto:sage [2023/12/16(土) 23:27:25.62 ID:yw6xDge+.net]
横からすみません
>>40
のインストールにチャレンジしたのですが、管理者権限のPowerShellでInstall-ModuleをしたのにImport-Moduleでdllが無いみたいなエラーが出て使えません
どなたかアドバイス頂けないでしょうか

53 名前:デフォルトの名無しさん mailto:sage [2023/12/17(日) 00:21:34.60 ID:OHxpVvei.net]
>>52
下のURLの2つのnupkgをダウンロードして、ファイル名の後ろの拡張子を.zipに変更する
https://www.nuget.org/api/v2/package/Microsoft-WindowsAPICodePack-Core/1.1.4
https://www.nuget.org/api/v2/package/Microsoft-WindowsAPICodePack-Shell/1.1.4

microsoft-windowsapicodepack-core.1.1.4.nupkg.zip
microsoft-windowsapicodepack-shell.1.1.4.nupkg.zip
この2つのzipを適当なフォルダに解凍して、libフォルダその他が作成される事を確認。ここで必要なのはlib配下の*.dllのみ
libフォルダ内の自分のpowershell環境と適合する.NETのバージョンのフォルダから*.dllを取り出してカレントディレクトリに配置
でいけるんじゃないかな

54 名前:デフォルトの名無しさん mailto:sage [2023/12/22(金) 07:48:19.63 ID:wPcChJb5.net]
$PROFILE ってなんなのでしょうか
$PROFILE.GetType() だと String のようですが
$PROFILE | Select-Object * で AllUsersAllHosts などが出てくるのがわかりません
$PROFILE | Select-Object * で何が起きているのでしょうか

55 名前:デフォルトの名無しさん mailto:sage [2023/12/22(金) 09:01:10.81 ID:FudXFPqY.net]
PowerShellはAdd-Memberでオブジェクトにプロパティやメソッドを追加できる
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/add-member

$PROFILE | Get-Member を実行してみればわかるけど
AllUsersAllHostsとかは$PROFILEに追加されたNotePropertyって種類のプロパティ

56 名前:デフォルトの名無しさん mailto:sage [2023/12/22(金) 09:10:30.60 ID:nFOKM4xK.net]
>>54
中身がPSCustomObjectでない変数にもNotePropertyを設定できる
ただしその変数に他の値を代入するとNotePropertyの情報は消えてしまうから用途は限定される
$a = "aaa"
$a = $a | Add-Member -PassThru "Value" "xxx"
$a = $a | Add-Member -PassThru "Value2" "yyy"
$a # aaa
$a.Value # xxx
$a.Value2 # yyy
$a | select *
$a = "bbb"
$a.Value # $null

57 名前:デフォルトの名無しさん mailto:sage [2023/12/22(金) 09:51:40.03 ID:wPcChJb5.net]
('str' | Add-Member -type NoteProperty -Name 'wao' -Value 'Wao!' -passThru).wao
→ Wao!
(123 | Add-Member -type NoteProperty -Name 'wao' -Value 'Wao!' -passThru).wao
→ Wao!

理解した

58 名前:デフォルトの名無しさん mailto:sage [2023/12/23(土) 21:24:52.21 ID:xtnhDuDo.net]
>>56
Add-Member は変数ではなくオブジェクトにメンバーを追加する
"aaa" と "bbb" は違うオブジェクトなんだから "aaa" に追加したメンバーが "bbb" に無いのは当たり前

59 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 07:53:26.01 ID:5GC0Dj8P.net]
ネイティブコマンドの出力ってPowerShell界に入るとString列になるけど
Stringのそれぞれにプロパティで元のバイナリ付けて欲しい

60 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 08:58:53.82 ID:xlHQ3YOr.net]
>>59
PSNativeCommandPreserveBytePipe
https://learn.microsoft.com/ja-jp/powershell/scripting/learn/experimental-features#psnativecommandpreservebytepipe



61 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 11:02:44.18 ID:5GC0Dj8P.net]
バイナリが通るようになったのは
「ネイティブからネイティブ」と「PowerShellからネイティブ」だけ
「ネイティブからPowerShell」に手軽にバイナリ通したい

バイナリ出力ネイティブ | バイナリ入力ネイティブ

として使うバイナリ入力ネイティブ用にラッパーが書きたいのに今は書けない

62 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 12:37:48.60 ID:5GC0Dj8P.net]
自分には必要ないから触れなかったけど
バイナリ出力ネイティブのラッパーも書けない

63 名前:デフォルトの名無しさん mailto:sage [2023/12/25(月) 12:38:42.52 ID:5GC0Dj8P.net]
あ、手間をかければ書けるな

64 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 07:36:13.49 ID:ghNGRT5G.net]
引数に -i を複数回指定したいので param() を使わずに function を書いています
get-help で SYNTAX に使い方を表示するにはどうすれば良いのでしょうか

65 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 12:19:47.21 ID:hM6Ywi/0.net]
about_Comment_Based_Help
ttps://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_comment_based_help?view=powershell-7.4

このページの中の項目で
 スクリプト モジュールでのコメント ベースのヘルプの構文
 コメントベースのヘルプ キーワード
 関数のコメント ベースのヘルプ
 関数構文でのパラメーターの説明
 スクリプトのコメントベースのヘルプ
あたりが参考になるかも

66 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 16:47:47.85 ID:ghNGRT5G.net]
paramを使わずにSYNTAXを表示する方法を尋ねたのはそこを見たからでして
方法がありましたら具体的にご教示くださいませ

67 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 19:16:46.24 ID:CTT8zMQ8.net]
nugetに上がってるモジュールのソースでも嫁

68 名前:デフォルトの名無しさん mailto:sage [2023/12/26(火) 21:29:18.59 ID:QC0ZGJu/.net]
そもそもなんで -i を複数回指定したいんだろう
引数$i の型を配列にするのとは違うの?

69 名前:0064 mailto:sage [2023/12/27(水) 12:51:53.61 ID:1jSqRJ5E.net]
ffmpeg.exeに毎回付けたいオプションがありまして
オプション付きエイリアス代わりのfunctionが欲しかったのです
ffmpeg -f aac -i audio.bin -f hevc -i video.bin -c copy out.mp4
のようにffmpeg.exeと同じ使い方だと嬉しい

ちなみにValueFromRemainingArgumentsで受けようとしても
ffmpeg: Parameter cannot be processed because the parameter name 'i' is ambiguous. Possible matches include: -InformationAction -InformationVariable.
と怒られます

70 名前:デフォルトの名無しさん mailto:sage [2023/12/27(水) 13:02:29.78 ID:X+3+vX99.net]
指定する対象はaudioとvideoと決まってるんだから
-aiや-viにすりゃいい
変態的なffmpegのオナニーに付き合う必要はない



71 名前:0064 mailto:sage [2023/12/27(水) 13:12:15.16 ID:1jSqRJ5E.net]
いやaudioとvideoに限らんし個数も不定なのよ
audioが言語別複数で、videoはチャプターごとに分かれて、字幕もあったり
結局ffmpegと同じ使い方ができるようにするのが面倒ない

72 名前:デフォルトの名無しさん mailto:sage [2023/12/27(水) 13:59:38.84 ID:Fe+mtIWC.net]
ffmpegはシーケンスが意味を持つ引数になってるのよね
どういう順で記述するかによって適用される範囲が異なってくる

73 名前:デフォルトの名無しさん mailto:sage [2023/12/27(水) 20:51:25.44 ID:85uYBZGc.net]
なら引数は$argsで受け取って好きなように解釈したらええがな

74 名前:0064 mailto:sage [2023/12/27(水) 22:38:05.51 ID:1jSqRJ5E.net]
だからそうしてるのが理解できないのかな
paramを使わないというのは $args を自分で解釈するということ
その上でparamを使わない場合のget-helpの出力について相談したんだが
聞いた相手が想像を超えたバカだったたようだ
邪魔したな

75 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 08:55:34.70 ID:xGxlWVWv.net]
PowerShellにはPowerShellの流儀があるわけで
それに合わないことをやろうとすれば苦労するのは当たり前
C言語で関数型プログラミングをしたいって騒いでるのと同レベル

76 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 09:27:10.14 ID:i2ZdA1S0.net]
・質問者がget-helpのやり方をスレで質問
・そもそもこうすればいいんじゃね?と別解について疑問があがる
・さほど適した別解はないことが判明
・質問者に対して怒り出す

別に苦労したと文句たれてるわけでもないのに質問者がウザ絡みされて気の毒すぎる

77 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 10:13:47.89 ID:DhrTF4+F.net]
助言・回答者に対しキレ散らかすパターン多いな。同一人物か?

78 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 10:20:56.59 ID:4ANODT1z.net]
よく見たら>>16のtarと同じ奴か

79 名前:デフォルトの名無しさん mailto:sage [2023/12/29(金) 08:36:49.58 ID:KamNl0ts.net]
PowerShellよりdoskeyのマクロにしたほうが簡単そう

80 名前:デフォルトの名無しさん mailto:sage [2023/12/29(金) 11:07:50.54 ID:HpMDoHHU.net]
get-helpでヘルプを表示させる
コメントベースのヘルプを記述する
param()を使わない
という条件だったら単純にスクリプトの先頭にコメントベースで
.SYNOPSIS または .DESCRIPTION に「-iが複数使える」旨を書けばいいのでは

もしくは
param()を使わず$Argsを自前で解釈しなきゃいけないので
引数の解釈を構築するついでに
$Args.Countがゼロもしくは -help -h -? /h /?
あたりの引数で独自のヘルプを表示させちゃうとか

まぁ普通に考えたらこうならね?



81 名前:デフォルトの名無しさん [2023/12/29(金) 15:57:16.18 ID:SsN2lKB9.net]
質問して答えにキレ散らかすキチゲエきてるねw

82 名前:デフォルトの名無しさん mailto:sage [2023/12/29(金) 17:50:55.94 ID:6zkU+tYe.net]
>>73 がコントすぎてさすがに擁護できない

83 名前:デフォルトの名無しさん mailto:sage [2023/12/30(土) 20:28:29.74 ID:pfiAiXAK.net]
XMLヘルプファイル用意して参照させればParam()のないfunctionに対し「構文」部分を書ける。

84 名前:デフォルトの名無しさん mailto:sage [2023/12/30(土) 21:23:05.61 ID:pfiAiXAK.net]
PowerShell標準から外れた「引数に -i を複数回指定」みたいな内容を書けるかは知らん。

85 名前:デフォルトの名無しさん [2023/12/31(日) 16:06:42.19 ID:gGg0M1TZ.net]
国内公式からLenovoのノートPC買ったら何故かISEが英語環境になって意味わからん。
どこに言語設定あるの?当然OSは日本語設定にしてるし、他のアプリも日本語になってる。
これまでLenovoのPCは5台くらい買ってきたのにISEだけ英語になるの初めてなんだが。
https://i.imgur.com/H4NVkKH.png

86 名前:デフォルトの名無しさん mailto:sage [2023/12/31(日) 17:55:15.89 ID:s/6k3+Yx.net]
そういうのsurfaceでもあったな
OSセットアップ時の国設定が半端に適用された状態だから入れ直した方が早いかも

87 名前:デフォルトの名無しさん [2024/01/01(月) 01:36:45.15 ID:/rCM9JK/.net]
>>85
Windowsは英語版を日本語に切り替えると日本語にならないところがある

だから日本語版でインストールした方がいい

ちなみにいまどきISEを使っているのもよくわからない

88 名前:デフォルトの名無しさん mailto:sage [2024/01/01(月) 21:51:12.11 ID:uj2mjMNR.net]
Windows PowerShell ISEでPowerShell Coreを利用する
https://dev.classmethod.jp/articles/using-powershell-core-in-the-windows-powershell-ise/

勝手にアプリをインストールできない環境なら意味あるかもしれない

89 名前:デフォルトの名無しさん [2024/01/02(火) 12:27:48.68 ID:TDOOgc4U.net]
powershell iseってのを知らなかったけど起動したらUIシンプルで美しいな
VSCodeもこれくらいシンプルになってくれんかな

90 名前:デフォルトの名無しさん mailto:sage [2024/01/02(火) 12:49:42.78 ID:ztgjURNX.net]
カスタマイズしてシンプルにすればいいと思うよ
俺はどちらかというとVSCodeのほうが機能美を感じる
デフォルトで万人の感性にフィットするモノは存在しない
カスタマイズも嫌なら自分で作るか作らせるか



91 名前:デフォルトの名無しさん [2024/01/02(火) 20:24:20.63 ID:G9bvfkvl.net]
>>88
ヤベーもの見てるんだなw

92 名前:デフォルトの名無しさん mailto:sage [2024/01/15(月) 23:56:13.49 ID:0fJNPgiU.net]
Class C { $a = '失敗' }

function f { Param([ref]$r); $r.Value = '成功' }

$o = [C]::new()
f ([ref]$o.a)
$o.a

$t = '失敗'
f ([ref]$t)
$t

こんなの聞いてないよ

93 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 12:08:02.87 ID:YM90ubox.net]
何が言いたいのかわからないw
コードを実行した結果が書かれてないので
何を言いたいのか知るにはこのコードを実行しなきゃならない
めんどくさいw

94 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 18:55:49.27 ID:6T/+PhGk.net]
プロパティがgetterだから

95 名前:デフォルトの名無しさん mailto:sage [2024/01/17(水) 09:27:27.73 ID:HArby8R7.net]
$o | Get-Member を実行してみれば分かるけど$o.aはフィールドじゃなくてプロパティだからな
$o.aのgetter( $o.get_a() )の戻り値を関数に渡しても$o.aの値は変わらない

96 名前:デフォルトの名無しさん mailto:sage [2024/02/11(日) 23:33:57.66 ID:Z05z2D4x.net]
パワーシェルすげえな
仕事がどんどん片付いていくよ

97 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 14:14:12.56 ID:JyRut9xW.net]
2つのCSV(どちらも同じヘッダー)で両方に一致するデータ行があった場合にその行を2つのCSVから取り除きたいんだけどどうしたらいいの?
ヘッダーがDate,Shop,Sales だとしてユニークな項目がなく全く同じデータが1つ目のCSVに1行、2つ目のCSVに2行あった場合に2つ目のCSVは1行だけ消したい
Where-object だと2行とも消えちゃう

98 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 18:46:20.00 ID:hxHkafQb.net]
2つのCSVをどうやってwhere-objectに渡してんだよ
その2行が消える間抜けコード晒してみなよ

99 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 19:14:40.76 ID:JyRut9xW.net]
chatgptに聞いたらそうなった

100 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 22:08:44.15 ID:JyRut9xW.net]
# CSVファイルを読み込む
$csv1 = Import-Csv -Path 'csv1.csv'
$csv2 = Import-Csv -Path 'csv2.csv'

# CSV1の各行について
foreach ($row1 in $csv1) {
 # CSV2の中で一致する行を探す
 $match = $csv2 | Where-Object { $_.Date -eq $row1.Date -and $_.Shop -eq $row1.Shop -and $_.Sales -eq $row1.Sales }

 # 一致する行が見つかった場合
 if ($match) {
  # CSV1とCSV2から一致する行を削除
  $csv1 = $csv1 | Where-Object { $_ -ne $row1 }
  $csv2 = $csv2 | Where-Object { $_ -ne $match[0] }
 }
}

# 結果を出力
$csv1 | Export-Csv -Path 'csv1.csv' -NoTypeInformation
$csv2 | Export-Csv -Path 'csv2.csv' -NoTypeInformation



101 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 23:21:34.71 ID:j3BJYXF1.net]
わーいできたー

$csv1=gc csv1.csv
$csv2=csv2.csv
#どうせ全一致ならテキストのまま比較すりゃいいだろ

$i=0
foreach($row in $csv1){
$csv2|%{
$j=$k=0
}{
if($_ -eq $row -and $i -eq 0){
$csv1[$i]=$csv2[$j]=$null
$k=1
}
$j++
}
$i++
}
$csv1|sc csv1.csv
$csv2|sc csv2.csv

102 名前:デフォルトの名無しさん mailto:sage [2024/02/27(火) 23:58:09.98 ID:IJ26J3uc.net]
$i1 = "csv1.csv"
$i2 = "csv2.csv"
$o1 = "csv1_out.csv"
$o2 = "csv2_out.csv"
gc $i1, $i2 | group readcount | ?{$_.group[0] -ne $_.group[1]} | foreach{$_.group[0] | ac $o1; $_.group[1] | ac $o2; $_.group[0].readcount}

103 名前:デフォルトの名無しさん [2024/02/28(水) 00:21:41.74 ID:JjFjLo/S.net]
段階を踏まないのは謎だよな
ファイルをコピーする概念もなさそう

104 名前:デフォルトの名無しさん mailto:sage [2024/02/28(水) 00:54:14.86 ID:hPdEXjNd.net]
これで良かったわ
$csv1=gc csv1.csv
$csv2=gc csv2.csv
$compare=compare $csv1 $csv2
$compare|?{$_.SideIndicator -eq "<="}|% InputObject|sc csv1.csv
$compare|?{$_.SideIndicator -eq "=>"}|% InputObject|sc csv2.csv

105 名前:デフォルトの名無しさん [2024/02/28(水) 01:32:49.70 ID:anWSvM2g.net]
CSVファイルに想定外のデータがあることを考慮しないのか

106 名前:デフォルトの名無しさん mailto:sage [2024/02/28(水) 02:17:43.88 ID:gh65zyvf.net]
わ仕事早い…

csv1の方はDateがYYYY/MM/DDの10桁固定で
csv2の方はDateがYYYY/M/Dで8〜10桁になってて
日付としてみれば同じなんですが1行を文字ででみると違う可能性があります…
後出しですいません
またShopはだいたい一致してるのですが
「ローソン札幌店」と「ローソン札幌」や「ローソンサッポロ」みたいな内容が異なることがあってそこを必ず自前のfunctionの変換リストかましてから比較する予定でした
私の想定を超えるプログラムでfunctionを挟むこともできない

107 名前:デフォルトの名無しさん mailto:sage [2024/02/28(水) 02:24:06.13 ID:yYqm5P+g.net]
カラムの曖昧さとかは全く興味沸かないなあ自分でやんな

108 名前:デフォルトの名無しさん mailto:sage [2024/02/29(木) 08:30:06.44 ID:Qx0i34px.net]
ファイルのサイズが大きければ実装が変わる

109 名前:デフォルトの名無しさん [2024/02/29(木) 08:47:23.80 ID:8KhlEQjj.net]
チンコのサイズが大きければ実績が変わる

110 名前:デフォルトの名無しさん mailto:sage [2024/03/01(金) 15:53:36.57 ID:bh14ivY9.net]
昨日の少し試しましたが

$compare=compare $csv1 $csv2
$compare|?{$_.SideIndicator -eq "<="}|% InputObject|sc csv1.csv
$compare|?{$_.SideIndicator -eq "=>"}|% InputObject|sc csv2.csv

でうまくいきそうです
ありがとうございます

自分でつけてる家計簿からクレジットで相殺してる項目だけ出力したcsvと
三井住友のVpassの明細(ファイルの日付的には翌月)を突き合わせを自動でやって7割ぐらい減ってくれたらいいなと思って
AIにプログラム書かせたらすぐにできるかなと思ったけどAIもまだまだアホでした

土日に頑張ります



111 名前:デフォルトの名無しさん [2024/03/02(土) 23:39:14.56 ID:XQV1Pqn6.net]
目的よりも手段にこだわっていると思われる

テキストファイルとPowerShellだけで、イレギュラーなデータがあるかもしれないデータを操作をするのは、かなり面倒なやり方だぞ。

112 名前:デフォルトの名無しさん [2024/03/02(土) 23:40:34.42 ID:XQV1Pqn6.net]
>>110 はキャラクタセットも気にしてなさそうなんだよな

113 名前:デフォルトの名無しさん mailto:sage [2024/03/03(日) 03:11:25.14 ID:CrVe/94r.net]
行比較が出来るようになれば対象が何だろうが応用できるだろ
話はとっくに終わってんのよ
>目的よりも手段にこだわっていると思われる
これまんまお前のことじゃね?

114 名前:デフォルトの名無しさん mailto:sage [2024/03/05(火) 01:41:57.29 ID:Mm4X91cX.net]
そんなに複雑なら、シェルの範囲を超えている。
Ruby など動的言語の出番

>>106
RubyのCSV では、コンバーターで変換器を自作する

115 名前:デフォルトの名無しさん mailto:sage [2024/03/06(水) 05:34:48.47 ID:oDRlZbsC.net]
Ruby では、2024-01-01 のみ、Date 型へ変換できる。
2024/1/1,2024/01/01,2024-1-1 は変換できない。
以下のように、自分で変換器・コンバーターを定義すれば変換できる

でも表記揺れは別の処理として、最初に一括して変換した方が安全

require 'csv'

input_csv = <<"EOT"
2024/1/1,2024-1-2
2024/02/01,2024-02-02
EOT

# Date 型へ変換する
proc = Proc.new do |field, field_info|
case field_info.index
when 0 then Date.strptime( field, "%Y/%m/%d" ) # 0列目
when 1 then Date.strptime( field, "%Y-%m-%d" ) # 1列目
else
field # 処理なし
end
end

options = { :converters => proc }

p CSV.parse( input_csv, options )

出力
[ [#<Date: 2024-01-01>, #<Date: 2024-01-02>],
[#<Date: 2024-02-01>, #<Date: 2024-02-02>] ]

116 名前:デフォルトの名無しさん mailto:sage [2024/03/06(水) 07:42:44.20 ID:wzhaiXwv.net]
PowerShellだと何も考えずにDateTime変換できるのに、Rubyだとそんなに手間かかるのか
もうそんな言語使うの止めて大人しくPowerShell使ったら?

117 名前:デフォルトの名無しさん mailto:sage [2024/03/06(水) 17:02:39.85 ID:8FQ+1AZx.net]
すいません初心者でとんちんかんな質問だったらごめんなさい
PowerShellからarduinoにデータを送ってOLEDで表示するセンサーモニターを作ってます
CPU・GPUの使用率や温度は取り出せて表示できたのですが
FPSってどこからか取り出す方法ってありますか?
使用率や温度と違うのでPresentMonやAfterburnerからGet-Counterで取得する?
とか考えて調べてるのですが分からなくて
とんちんかんなこと言ってたらすいません
できるできない含めて教えてください

118 名前:115 mailto:sage [2024/03/07(木) 01:47:21.31 ID:Z/86eyX0.net]
基本的に、Go でも、こういうのしかない

2024-01-01
2024-01-01 15:01:01

それか、RFC 3339, RFC 3339 Nano

これら以外を使っているシステムは、バグるからダメ!

119 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 01:55:49.10 ID:yhOhiWWp.net]
>>117
FPSて。要するにモニタのリフレッシュレートが欲しいんじゃろ?
ほれ
$RefreshRate = Get-WmiObject -Class:Win32_videocontroller | Select-Object -ExpandProperty CurrentRefreshRate

120 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 10:15:46.32 ID:s2RGChkv.net]
>>119
返事ありがとうございます
言葉足らずですいません
頂いた情報は現在設定しているリフレッシュレートが表示されるようです
欲しいデータはGeForce ExperienceやMSI Afterburnerで画面上でオーバーレイさせて
表示しているリアルタイムのFPSとして表示されている数値なんです
FPSやフレームレートで検索してましたがリフレッシュレートでも探してみます



121 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 10:15:52.25 ID:s2RGChkv.net]
>>119
返事ありがとうございます
言葉足らずですいません
頂いた情報は現在設定しているリフレッシュレートが表示されるようです
欲しいデータはGeForce ExperienceやMSI Afterburnerで画面上でオーバーレイさせて
表示しているリアルタイムのFPSとして表示されている数値なんです
FPSやフレームレートで検索してましたがリフレッシュレートでも探してみます

122 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 10:51:01.07 ID:s2RGChkv.net]
連投してましたすいません
引き続き皆さんの知恵を貸してください

123 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 13:04:08.87 ID:9xBYf94s.net]
まずそれらがfps値返すようなAPI持ってるか調べなよ
無いなら値として取得は無理だろうね
fps表示部分が単色ならそのエリアをキャプチャして数字認識でもした方が早そう

124 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 14:35:34.66 ID:s2RGChkv.net]
>>123
ヒントありがとうございます
APIを調べてみたらNVIDIAにNVAPIと言うのがありました
ここからどうやって取り出すか調べてます
もし良かったらもう少し何かヒントをください

125 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 17:21:43.79 ID:9xBYf94s.net]
もうpowershell関係ないがPresentMon64に計測対象のPID渡せばfps取得できるみたいね

126 名前:デフォルトの名無しさん mailto:sage [2024/03/07(木) 17:56:53.13 ID:YZU0b9T9.net]
>>125
はいPresentMonでもFPSを取れるみたいなのは調べました
ただ、今arduinoㇸpowarshellからCPUGPUのデータを
受け取ってたのでそこと一緒に入れる方法が見つけられなくて

127 名前:110 mailto:sage [2024/03/07(木) 22:55:03.61 ID:PPl+ScPv.net]
Add-Type -AssemblyName System.Windows.Forms

function ConvertShopName([string]$shopName) {
 switch -Wildcard ($shopName) {
  "ファミリーマート*" { $shopName2 = [regex]::Replace($shopName, "(ファミリーマート)([  ]*)(.*)(店)", { $args.groups[1].value + " " + $args.groups[3].value }) }
  "ローソン*" { $shopName2 = [regex]::Replace($shopName, "(ローソン)([  ]*)(.*)", { $args.groups[1].value }) }
  "セブンイレブン*" { $shopName2 = "セブンイレブン" }
  "マクドナルド*" { $shopName2 = "マクドナルド" }
  "すき家*" { $shopName2 = "すき家" }
  "Amazonで注文" { $shopName2 = "AMAZON.CO.JP" }

  default { $shopName2 = $shopName }

 }
 return $shopName2
}


if ($Args.Count -eq 0) {
 [System.Windows.Forms.MessageBox]::Show("引数にファイルを指定してください", "エラー")
 return 0
}

# 家計簿から抽出した csv ファイルを読み込む
$excelData = Import-Csv $Args[0] -Encoding Default -Header "Date", "Shop", "Amount" |
 Select-Object @{ label = 'Date'; expression = { [DateTime]$_.Date} }, Shop, @{ label = 'Amount'; expression = { [int]$_.Amount } }

# 引数で指定されたファイルをフォルダパスとファイル名(拡張子なし)に分離する
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($Args[0])
$folderPath = [System.IO.Path]::GetDirectoryName($Args[0])

128 名前:110 mailto:sage [2024/03/07(木) 22:56:30.34 ID:PPl+ScPv.net]
# ファイル名から日付に変換する
$targetDate = [DateTime]::ParseExact($baseName + "01日","yyyy年MM月dd日", $null)

# 引数と同じフォルダにある Vpass からダウンロードした csv ファイル(ファイル名は翌月) を読み込む
$vpassFile = $folderPath + "\" + $targetDate.AddMonths(1).ToString("yyyyMM") + ".csv"
$vpassData = Import-Csv $vpassFile -Encoding Default -Header "Date", "Shop", "TotalAmount", "Type", "Count", "PaymentAmount", "ShopDetail" |
 Select-Object @{ label = 'Date'; expression = { [DateTime]$_.Date } }, Shop, @{ label = 'TotalAmount'; expression = { [int]$_.TotalAmount } }, Type, Count, @{ label = 'PaymentAmount'; expression = { [int]$_.PaymentAmount } }, ShopDetail


echo "実行します . . ."
# 家計簿データの Shop が "自動引き落とし" で Amount がプラスのデータを削除する
$excelDataList = [System.Collections.ArrayList]$excelData | Where-Object { $_.Shop -ne "自動引き落とし" -and $_.Amount -lt 0 }

# 家計簿データの 2項目目が空のデータ行を削除する
$excelDataList = [System.Collections.ArrayList]$excelData | Where-Object { ![string]::IsNullOrEmpty($_.Shop) }

# 家計簿のマイナスになっている消し込みデータをプラスに変換し、店名をクレジット明細側に変換する
foreach($data in $excelDataList) {
 $data.Amount = $data.Amount * -1
 $data.Shop = ConvertShopName($data.Shop)
}

# vpass データの Type, Count, PaymentAmount, ShopDetail が null のデータを削除する
$vpassData2 = $vpassData | Where-Object { ![string]::IsNullOrEmpty($_.Type) -or ![string]::IsNullOrEmpty($_.Count) -or ![string]::IsNullOrEmpty($_.PaymentAmount) -or ![string]::IsNullOrEmpty($_.ShopDetail) }

129 名前:110 mailto:sage [2024/03/07(木) 22:57:21.99 ID:PPl+ScPv.net]
# vpass の Date, Shop, TotalAmount, Type, Count, Count, ShopDetail が null のデータを削除する
$vpassData3 = $vpassData2 | Where-Object { ![string]::IsNullOrEmpty($_.Date) -or ![string]::IsNullOrEmpty($_.Shop) -or ![string]::IsNullOrEmpty($_.TotalAmount) -or ![string]::IsNullOrEmpty($_.Type) -or ![string]::IsNullOrEmpty($_.Count) -or ![string]::IsNullOrEmpty($_.ShopDetail) }

# 抽出後のデータを格納するための変数
[System.Collections.ArrayList]$vpassDataList = @()
[System.Collections.ArrayList]$unknownhDataList = @()

# vpass データのデータを必要な項目のみにする
foreach($data in $vpassData3) {
 if ( $data.Type -eq "1" -and $data.Count -eq "1" -and $data.TotalAmount -eq $data.PaymentAmount -and $data.ShopDetail -eq "" ) {
  $temp = $data | Select-Object Date, Shop, @{ label = 'Amount'; expression = { [int]$_.TotalAmount } }
  $vpassDataList += $temp
 } elseif ( $data.Type -eq "1" -and $data.Count -eq "1" -and $data.TotalAmount -eq $data.PaymentAmount -and $data.ShopDetail -ne $null ) {
  $temp = $data | Select-Object Date, @{ label = 'Shop'; expression = { $_.ShopDetail } }, @{ label = 'Amount'; expression = { [int]$_.TotalAmount } }
  $vpassDataList += $temp
 } else {
  $unknownhDataList += $data
 }
}

# 重複するオブジェクトを探す
$commonObjects1 = Compare-Object -ReferenceObject $excelDataList -DifferenceObject $vpassDataList -Property Date, Shop, Amount -IncludeEqual | Where-Object { $_.SideIndicator -eq '<=' }
$commonObjects2 = Compare-Object -ReferenceObject $excelDataList -DifferenceObject $vpassDataList -Property Date, Shop, Amount -IncludeEqual | Where-Object { $_.SideIndicator -eq '=>' }

130 名前:110 mailto:sage [2024/03/07(木) 23:00:00.89 ID:PPl+ScPv.net]
Add-Content $Args[0] "`r`n`r`n--------`r`n`r`n"
Add-Content $Args[0] $unknownhDataList
Add-Content $Args[0] "`r`n`r`n"
Add-Content $Args[0] $commonObjects1
Add-Content $Args[0] "`r`n`r`n"
Add-Content $Args[0] $commonObjects2


echo "終了しました。続行するには何かキーを押してください . . ."
$host.UI.RawUI.ReadKey()

-----
とりあえず形にはなりました。ありがとうございました!



131 名前:デフォルトの名無しさん mailto:sage [2024/03/08(金) 02:02:18.05 ID:nneR3Lgu.net]
それだけプログラミングできるなら、
データベースもある、Ruby on Rails で稼げ

PowerShell では稼げないだろ

132 名前:デフォルトの名無しさん [2024/03/08(金) 19:54:09.17 ID:kAti37wZ.net]
無償のRDBに取り込んで操作すれば楽なのにな
SQL Server ExpressもSQLもわからないのかもしれないが

133 名前:デフォルトの名無しさん mailto:sage [2024/03/08(金) 23:00:20.01 ID:swFfFcBY.net]
いや、それならSQLiteでええやん

134 名前:デフォルトの名無しさん [2024/03/09(土) 21:26:55.41 ID:HJGXBhOf.net]
>>133
それマイクロソフト製品じゃないぞ?

135 名前:デフォルトの名無しさん mailto:sage [2024/03/10(日) 01:11:42.47 ID:AxZkOQF1.net]
sqliteはnugetから落とせるだろ

136 名前:デフォルトの名無しさん mailto:sage [2024/03/10(日) 02:22:29.61 ID:dZzOrK8S.net]
マイクロソフト製品じゃないとダメな理由がよく分からない

137 名前:デフォルトの名無しさん [2024/03/10(日) 12:24:51.84 ID:2l3n+JcC.net]
>>136
マイクロソフトのサポートが対応を渋る

138 名前:デフォルトの名無しさん [2024/03/10(日) 12:25:36.50 ID:2l3n+JcC.net]
SQL Server Expressを嫌がる理由がわからない

139 名前:デフォルトの名無しさん mailto:sage [2024/03/13(水) 12:54:32.04 ID:dDXeoITb.net]
FPS値を取得したがっていた者です
あれから色々調べてHWiNFOから取得する事ができました
ご協力ありがとうございました

140 名前:デフォルトの名無しさん mailto:sage [2024/03/14(木) 01:25:06.87 ID:3xDTJGqn.net]
ウェブ開発では、Ruby on Rails 一択。
Railsは、PostgreSQL, MySQL, SQLite の3大データベースに対応している。
ただし本番用では、PostgreSQL一択。
SQLiteは開発用・個人用など

AWS Aurora は、PostgreSQL, MySQLに対応している。
SQLiteはブラウザなど、多くのアプリに含まれて使われている



141 名前:デフォルトの名無しさん mailto:sage [2024/03/14(木) 04:08:32.14 ID:XOsoQn4t.net]
ORACLE「え?ワイは?」

142 名前:デフォルトの名無しさん mailto:sage [2024/03/14(木) 04:11:13.73 ID:MTVljuIS.net]
Rubyとかいう20年前の言語w

143 名前:デフォルトの名無しさん mailto:sage [2024/03/14(木) 14:26:49.02 ID:i9kIdifV.net]
デフォで存在してるところが良いんじゃないか
わざわざインストールするのなら今更新規にRubyを入れるのは無いだろうな

144 名前:デフォルトの名無しさん [2024/03/14(木) 21:10:47.40 ID:xE50NtDY.net]
>>141
オラクル社とマイクロソフト社がクラウドの世界では提携しているのを知らないのか?

145 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 03:50:52.94 ID:d5IiPK+0.net]
「主なRDB」でググった結果
Microsoft SQL Server.
Oracle Database
PostgreSQL.
MySQL
Amazon Relational Database Service.
IBM Db2 Database.

146 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 08:13:53.75 ID:X0BgzxQ9.net]
まだ続くの?家計簿に適してるのはどれよ

147 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 19:27:44.40 ID:Yppsp93L.net]
家計簿レベルなら1ヶ月に多くても1000件ないでしょ
csvをそのままOS標準で使える言語で処理するのがいいよ

148 名前:デフォルトの名無しさん [2024/03/16(土) 23:37:28.12 ID:5O1O3AvE.net]
>>147
複式簿記というものを知らないのがバレているぞ

149 名前:140 mailto:sage [2024/03/17(日) 01:43:19.61 ID:02imyFwJ.net]
複式簿記の自作なんて無理。
テーブル数も、100 ぐらい行きそう

総勘定元帳とか、複数のテーブルを紐付けしないといけないから、
プログラムがめちゃめちゃ複雑。
これは有料の会計ソフトを使うべき

自作では、単純な単式簿記しかできない

Ruby のCSV Table や、データベースを使うなら、Ruby on Rails とか。
Railsなら、3大データベースに対応している

参照、>>140

150 名前:デフォルトの名無しさん mailto:sage [2024/03/17(日) 10:50:03.64 ID:b6WSYS3s.net]
Rubyガイジってどこにでもわくんだな
トコジラミ並み



151 名前:デフォルトの名無しさん mailto:sage [2024/03/19(火) 02:21:32.51 ID:ilfn8WqH.net]
>>97
Ruby のCSV.Table で作ってみた

https://paiza.io/projects/7dyw8_lDWimUANwD5E5GSw?language=ruby

152 名前:デフォルトの名無しさん mailto:sage [2024/03/19(火) 13:20:31.92 ID:xCYlYIv4.net]
このスレは

PowerShell -Part 7

です

153 名前:デフォルトの名無しさん mailto:sage [2024/04/05(金) 00:59:22.85 ID:VnIedoxP.net]
Set-ExecutionPolicyとSudoって何が違うん?
とあるps1ファイルを実行する時にそのプロセスだけ実行ポリシーを変更するSet-ExecutionPolicy -ExecutionPolicy Bypass -Scope Processを実行後にxxx.ps1を実行してるんだが
Sudoが実装されたし楽ちんになるなとSudo xxx.ps1を入力するとエラーになる
どっちも一時的にパーミッションを変更してアクセス権限を付与するコマンドだと思うんだが何が違うんだ?

154 名前:デフォルトの名無しさん [2024/04/05(金) 01:03:46.96 ID:Lw8p7kTG.net]
窓の杜のニュース記事だけど、ここの情報参考になる?
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1579041.html

155 名前:デフォルトの名無しさん [2024/04/05(金) 01:55:57.21 ID:3ECyzj96.net]
>>153
そもそもいつからあなたのなかでは、ps1ファイルが実行形式ファイルになったのか?

156 名前:デフォルトの名無しさん mailto:sage [2024/04/05(金) 20:13:09.22 ID:Uri/y4c1.net]
Powershell コンソールで、xxx.ps1 とするとエラーになる!

パス付きで、./xxx.ps1, .\xxx.ps1 か、
powershell ./xxx.ps1, powershell .\xxx.ps1 なら実行できる

157 名前:デフォルトの名無しさん [2024/04/06(土) 01:56:00.53 ID:q9eV9Q7I.net]
だいたい間違って実行してしまわないような仕様にしたのがわからない世代がいるのか

ダブルクリックのような感覚で簡単実行なんてUACすら邪魔だと思ってんのかな?

自分で作って自分かミスして自分だけの問題で終わるならかまわないが、そんな趣味でPowerShellを使っている人間なんてほとんどいないと思う。

158 名前:デフォルトの名無しさん [2024/04/06(土) 01:58:23.66 ID:q9eV9Q7I.net]
コマンドレベルまで作り込んでテストされつくされているものと、自作のスクリプトをPATHに設定してどこからでも実行できるものが同列とはおそろしいな

159 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 02:15:20.68 ID:9cPJ1AnL.net]
vscodeのターミナルと、windowsターミナルで同じpowershellでも認識できるコマンドが違うのなんでだろ
プロファイル見るとそれぞれ同じpowershellのexe参照してるのに

160 名前:デフォルトの名無しさん [2024/04/06(土) 02:50:42.29 ID:q9eV9Q7I.net]
>>159
VSCodeはWindowsの一部じゃないぞ?

VSCodeアプリケーションは、同じような動きと結果をマネているだけで、エミュレーションのようなことをしているのだから、完全に同じようにするのは困難。



161 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 02:58:46.88 ID:Zc90rRma.net]
大体ps1の1って何なのとか
vbsやcmdやらがそのまま実行できるのにps1だけ半端に縛るのもおかしな話だし
>間違って実行してしまわないような仕様
こんなのいつ決まったんだ
MSでポリシーが統一されてるようには全く思えないんだが

162 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 07:02:00.61 ID:jPXaIytz.net]
世を取り巻くセキュリティ事情が日々刻々と変わっているのにかなり先発のvbsやcmdと同じじゃないからおかしいとな
少なくともある程度シェアを占める見込みがあるのだし前例踏襲に固執して0か100か思考に陥るほうがまずい
そういう脊髄反射的な他責や論点ずらしの癖は周囲を白眼視させるだけじゃよ

163 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 07:25:25.77 ID:6zl9Uxmg.net]
>>161
>>間違って実行してしまわないような仕様
>こんなのいつ決まったんだ
powershellが出たばかりの頃に中の人が言ってたよ

164 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 08:19:52.54 ID:NGHFFTyQ.net]
>大体ps1の1って何なのとか

バージョン1の事
元々の計画ではPowerShell2向けのスクリプトファイルは.ps2にするつもりだった

165 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 15:04:28.66 ID:M3AJuz+l.net]
拡張子にバージョン含めるアホは初めて見たかも
Windowsの技術者の発想ではないね
Powershellはこの拡張子含めて起動周りだけ残念

166 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 20:16:29.68 ID:qfnATLfz.net]
まぁMSはOSも言語も開発環境も既に人気もなく寿命もつきようとしてるから
Windows最後の砦だったゲームもValveがProtonとSteam OS作ったからLinuxでほぼすべてのゲームが動いてパフォーマンスもWindowsより良い場合もある
ただしあくまでエミュレートだからカーネルモードで動くアンチチートだけは動かなくてフォトナやヴァロやApexなんかの人気FPSが動かなかったり永久BAN対象になる
まぁこれも時間の問題でWindowsが必要とされなくなるのは間近だな

167 名前:デフォルトの名無しさん mailto:sage [2024/04/06(土) 20:56:33.00 ID:9cPJ1AnL.net]
いるよねこういう極論振り回す人
脳内で完結してるから聞く耳を持たない

168 名前:デフォルトの名無しさん mailto:sage [2024/04/07(日) 09:15:27.80 ID:nb2SxK5J.net]
プログラマに限らずIT界隈はMS批判するのがカッコいいと勘違いしてる人多いからね

169 名前:デフォルトの名無しさん [2024/04/07(日) 10:22:00.29 ID:K0Taf7XF.net]
>>165
まあ、マイクロソフトだから、拡張子を3文字にする慣習が伝統的にあるせいかな。

170 名前:デフォルトの名無しさん [2024/04/07(日) 10:23:05.93 ID:K0Taf7XF.net]
>>167
いまでもシェアのほとんどがWindowsなのにね



171 名前:デフォルトの名無しさん mailto:sage [2024/04/08(月) 21:40:31.39 ID:bL5gAXu8.net]
PowerShell の ps1 ファイルは 何故 1なのか
https://tech.guitarrapc.com/entry/2013/09/06/220944

172 名前:デフォルトの名無しさん mailto:sage [2024/04/09(火) 00:15:02.63 ID:32z8iBj9.net]
powershell 7.xってどういう立ち位置なんだろ
windows標準では入ってないから、開発者向けなのかな
Rubookは7.2が標準だけど

173 名前:デフォルトの名無しさん mailto:sage [2024/04/09(火) 03:22:25.95 ID:Gy4/KbO3.net]
PowerShell Core(6.0以降) では
・.NET Coreインストール可能なWindows以外のOSでも実行可能
・デフォルト文字コードがUTF8(BOMなし)、改行がLF
・WorkFlowなど機能の一部は使用不可

あと
WindowsPowerShell → PowerShell Coreで破壊的変更あり(PowerShell Core 破壊的変更でBingってください)

C#のソースを流用する場合ジェネリックが使える7.3が便利かなと思います

自分は未だPowerShell Coreに移行出来ていません

174 名前:デフォルトの名無しさん mailto:sage [2024/04/09(火) 20:15:01.39 ID:ru6IFaGR.net]
>>172
解釈はまかせるけど技術ブログでは以下の記載がある
https://devblogs.microsoft.com/powershell/powershell-openssh-team-investments-for-2023/
> As a reminder, PowerShell 7 is built on the latest .NET which does not have the same support lifecycle as Windows. We can’t ship something as a feature in Windows that does not align with Windows’ support lifecycle.

175 名前:デフォルトの名無しさん mailto:sage [2024/04/09(火) 21:52:45.57 ID:yR8KPsJp.net]
用がないなら関わる必要ないんじゃね
OSに標準で入ってる事しかメリット無いんだし

176 名前:デフォルトの名無しさん [2024/04/13(土) 22:49:21.10 ID:7ey9vG0h.net]
SJISで出力しようとするとエラーで怒られるのはなんでなんですか
仕方がないのでnkf -s --overwriteでしのいでるんですが

うまくいく
>dir | Out-File -Encoding 'utf8' output.txt

どちらもエラーが出る
>dir | Out-File -Encoding 'shift-jif' output.txt
>dir | Out-File -Encoding [System.Text.Encoding]::GetEncoding('shift-jis') output.txt

Out-File : パラメーター 'Encoding の引数を確認できません。引数 "[System.Text.Encoding]::GetEncoding
" は、ValidateSet 属性で指定されたセット "unknown,string,unicode,bigendianunicode,utf8,utf7,
utf32,ascii,default,oem" に属していません。このセットの引数を指定して、コマンドを再度実行してください。

177 名前:デフォルトの名無しさん mailto:sage [2024/04/13(土) 22:51:19.83 ID:7ey9vG0h.net]
shift-jifになってますがjisでもちゃんとエラーになります

178 名前:デフォルトの名無しさん mailto:sage [2024/04/13(土) 22:52:54.00 ID:OrtqC7Lq.net]
コマンドレットの引数と.NETのそれを混同してるのでは
-Encoding Defaultでしょ

179 名前:デフォルトの名無しさん mailto:sage [2024/04/14(日) 08:27:07.05 ID:JqEwLIX+.net]
なんでなんですかと言われても自分で貼ったエラーメッセージに書いてある通りでしょ

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/out-file?view=powershell-5.1#-encoding

どうしてもShift-JISと書きたいならPowerShell6.2以降をご利用ください

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/out-file?view=powershell-7.4#-encoding

180 名前:デフォルトの名無しさん [2024/04/15(月) 14:56:57.87 ID:PE3M1YJ/.net]
よく知らんけど、UTF8もSHIFT-JISもMS932
ASCIIも、全部半角英数文字なら、
完全に互換性あるよな❓
BOM付UTF8はダメだろうが

ていうか、改行はLF CR LF+CR CR+LF
のどれが正しいの❓



181 名前:デフォルトの名無しさん [2024/04/15(月) 15:02:21.24 ID:PE3M1YJ/.net]
ていうか、拡張子mp3は音楽で音なのに、
でもてか、拡張子mp4は動画で映像だし、ま、音声も含まれてるけど
もしかして、拡張子mp5は匂いとかになるのかな❓ なんて訳ないよね

182 名前:デフォルトの名無しさん mailto:sage [2024/04/15(月) 15:11:13.01 ID:t9UnzSYj.net]
mp3: MPEG-1 Audio Layer-3
mp4: MPEG-4 Part 14

183 名前:デフォルトの名無しさん mailto:sage [2024/04/15(月) 22:02:24.55 ID:uMyBIzHs.net]
>>180
0x5Cと0x7Eが違うだろ
0x5CはASCIIやUTF-8だと逆スラッシュだけどShift-JISでは円記号
0x7EはASCIIやUTF-8ではチルダでShift-JISだとオーバーライン

184 名前:デフォルトの名無しさん [2024/04/29(月) 03:38:58.05 ID:xgq67JZI.net]
糞言語晒しハゲ

185 名前:デフォルトの名無しさん mailto:sage [2024/04/29(月) 21:21:17.91 ID:+v7UeRZb.net]
確かにPowerShellには糞な所はあるが
UNIXシェルはもっと糞だからなぁ

186 名前:デフォルトの名無しさん mailto:sage [2024/04/30(火) 00:48:39.65 ID:DiJVRdjR.net]
bashはもっと高級言語っぽく書かせてくれ

187 名前:デフォルトの名無しさん mailto:sage [2024/04/30(火) 19:49:07.28 ID:C0uaYXPq.net]
プログラムスレ自体が
スレ立ての荒らしにあってる?

188 名前:デフォルトの名無しさん [2024/05/12(日) 19:06:56.30 ID:vKcD+EjR.net]
入力された値(小数点以下の桁数は不明)をそのままの値でコンソールに表示させる方法ありますでしょうか?


入力値 $nyuryoku = 0.0000001
出力 0.0000001

現状
1E-07

189 名前:デフォルトの名無しさん [2024/05/12(日) 19:07:09.73 ID:vKcD+EjR.net]
入力された値(小数点以下の桁数は不明)をそのままの値でコンソールに表示させる方法ありますでしょうか?


入力値 $nyuryoku = 0.0000001
出力 0.0000001

現状
1E-07

190 名前:デフォルトの名無しさん mailto:sage [2024/05/12(日) 19:36:08.58 ID:09MtL+BO.net]
最初から文字列にしとけばOK



191 名前:デフォルトの名無しさん mailto:sage [2024/05/12(日) 20:58:46.50 ID:XuEaHJPQ.net]
そうだね。逆にE表記の入力も受けるならそっちの対応も必要になる
$nyuryoku = "0.0000001"
[double]$nyuryoku_d = 0
if ([Double]::TryParse($nyuryoku, [ref]$nyuryoku_d)) { # 入力文字列をdouble値に変換できるか確認
$dotpos = $nyuryoku_s.IndexOf(".")
if ($dotpos -ge 0) { # ドット表記
$nyuryoku_d += 0.0000001
$nyuryoku_d.ToString("N" + $nyuryoku_s.substring($dotpos + 1).length) | Write-Host #double値を計算して同桁出力する場合
}
}

192 名前:デフォルトの名無しさん mailto:sage [2024/05/12(日) 21:52:36.80 ID:i2A3IV7D.net]
"{0:f7}" -f $nyuryoku

193 名前:デフォルトの名無しさん mailto:sage [2024/05/13(月) 11:39:01.69 ID:/Hf+00qw.net]
.NetのBigDecimal型を使えば演算も有効数字も期待通りにコントロールできて望むものに合致するかもしれない

194 名前:デフォルトの名無しさん [2024/05/14(火) 06:07:17.63 ID:91RzY7pD.net]
>>0190
確かにそうですね

>>0191
ありがとうございます。

>>0192
小数点以下桁数が計算できれば行けそうです

>>0193
ありがとうございます。試してみます

195 名前:デフォルトの名無しさん mailto:sage [2024/05/15(水) 12:16:52.10 ID:NKO3JxQw.net]
[System.Covert]::ToDecimal($nyuryoku)

196 名前:デフォルトの名無しさん mailto:sage [2024/05/15(水) 21:14:15.32 ID:dKr+esCZ.net]
[decimal]$nyuryoku

197 名前:デフォルトの名無しさん mailto:sage [2024/05/15(水) 23:59:01.94 ID:thm7xdMe.net]
> $x = "1.00"
> [decimal]$x
1

> [decimal]$y = "1.00"
> $y
1

簡潔でいいなと思ったけど v7.4.2 ではダメだったわ
v5 なら通る
なんでや

> [decimal]::Parse("1.00")
1.00

これならどっちもいける

198 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 09:37:50.88 ID:CqmosUS1.net]
1.00.ToString("0.00")

199 名前:デフォルトの名無しさん mailto:sage [2024/05/28(火) 21:30:03.57 ID:3YD/oRc3.net]
https://www.itmedia.co.jp/news/articles/2405/28/news172.html

こういうのがあるからPowerShellはスクリプト実行禁止がデフォルトになっている

200 名前:デフォルトの名無しさん mailto:sage [2024/05/29(水) 13:49:53.60 ID:uKjwQH9U.net]
いやいやいや…ちょっと調べればPowerShellを禁止設定のまま実行なんて簡単なんですけお^^



201 名前: 警備員[Lv.4][新芽] mailto:sage [2024/05/29(水) 20:30:24.77 ID:fSXLC2MA.net]
俺はバッチファイル経由で実行するようにしてる
同じフォルダ内のps1ファイルを全て羅列して、どれを実行しますか?みたいな感じのバッチファイル

202 名前:デフォルトの名無しさん mailto:sage [2024/05/29(水) 21:41:38.25 ID:02Fq4mGE.net]
それ意味あんの

203 名前: mailto:sage [2024/05/29(水) 23:35:21.72 ID:nyGT0uI2.net]
実行ポリシーに依存しない

204 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 00:25:29.21 ID:U4JaIgka.net]
>>199
そのせいで使い勝手が悪く普及しない
ダブクリ実行可能なショートカットは一般ユーザーには作れない
さらにウインドウ非表示実行もできず、VBSを置き換えることもできない

205 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 09:38:23.19 ID:BwsQkw0g.net]
>ウインドウ非表示実行

conhost.exe --headless powershell.exe -file foo.ps1
では駄目?

206 名前: mailto:sage [2024/05/30(木) 10:02:25.09 ID:KpHhmNZR.net]
非表示にする理由ある?

207 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 12:56:45.30 ID:T4GqjJ/d.net]
vbs廃止は神国だわw

208 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 17:48:39.42 ID:U4JaIgka.net]
>>205
駄目じゃない、ありがとう
タスクスケジューラーから定期実行する時、VBS以外の選択肢がなくて困ってた
引数の--headlessはどういう意味なんだ?

209 名前:デフォルトの名無しさん mailto:sage [2024/05/30(木) 22:14:09.65 ID:5L9b56Kn.net]
https://github.com/microsoft/terminal/issues/17178
conhost.exe --headlessは終了コードを得られない致命的なバグがあるらしいな
Hiddenで起動する適当なexe作った方が早そう

210 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 09:49:39.74 ID:GcLNDseM.net]
>>154
なんじゃこりゃ、どんだけエアプが書いてんだ?
そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ
権限の昇格の概念の無いOS用のsudoと意味論が異なる事を示す為にせめてsudo以外の名前を使えよ

以下win/pwsh環境での突っ込み
>runasはパスワードの入力が必要になる
saps に-cred $me渡せ

>別ウィンドウでターミナルが起動する
-nonew渡せ

>別ターミナル再度コマンドを実行する必要
それはsu相当の動作であってsaps pwshで代替できる

全部やりたいならsaps $prog -runas -cred $me -nonewだろ?

win上のpwsh環境ではsaps上で直交するオプションとして設計された4機能が全部斜交した邪悪の極みみたいなコマンドと化してるぞ
ついでに言うとrunas.exeも若干邪悪…

テストはしてないからなんか俺もエアプしてたら突っ込んでね?



211 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 10:15:49.38 ID:rqyUs55u.net]
$progと-args @argsをfunction sudoに包んで渡せばとりあえず望みの挙動を得られるはず

212 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 22:09:53.18 ID:olGfUeGO.net]
俺の環境だと-NoNewWindowと-Credential両方指定すると新しいウインドウが開いちゃうんだが

213 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 22:16:09.49 ID:GNPHSdGp.net]
>>208
https://www.keyence.co.jp/ss/general/iot-glossary/headless.jsp

ヘッドレスとは、組み込み機器やサーバなど、本来対面で人が操作するためのものではない(または、その必要がない)システムで見られる運用形態のひとつです。コンピュータの場合、キーボード、マウス、タッチパネルなどの入出力機器を接続しない状態で運用すること、また、その状態で運用を行う機器などがあります。

214 名前:デフォルトの名無しさん mailto:sage [2024/06/05(水) 00:12:03.26 ID:nLwXXU6Y.net]
https://eow.alc.co.jp/search?q=headless
例文、怖えぇ〜

【headless】
1. 頭部のない、首を切られた
 ・ I saw a headless dog lying beside the road on my way to school. :
  学校へ行く途中、道端に首のない犬が転がっているのを見た。
2. 指導者がいない
 ・ The terrorist group is a headless organization. :
  そのテロリスト集団は指導者がいない組織である。
3. ・・

215 名前:デフォルトの名無しさん mailto:sage [2024/06/10(月) 08:02:22.79 ID:KfgQc11A.net]
ヘッドレスってCPUをなくすべきでは

216 名前:デフォルトの名無しさん mailto:sage [2024/06/12(水) 21:40:45.55 ID:68xFIGJf.net]
>>210
>そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ

今のSudo for Windowsは同一じゃない

https://learn.microsoft.com/ja-jp/windows/sudo/#how-is-sudo-for-windows-different-from-the-existing-runas-command
>現時点で Windows 上の sudo コマンドは、他のユーザーとしてのプログラムの実行をサポートしていません。

217 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 01:51:19.96 ID:I2CUi2vW.net]
>>216
>そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ
ここで言及してるsudoはunix系の本家(?)sudoのことやろ

218 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 22:42:22.27 ID:pSP80P6j.net]
古い業務システムでデータ入力する時に自動化しようと思ったんだが、
Enterがカーソル位置以降の文字消してフォーカス移動、NumpadEnter(テンキーのEnter)がEnter、
左CtrlがCtrl、右CtrlがEnterという機能になっている。
powershellのSendkeysだとどうやってNumpadEnterか右Ctrlを選択すればいいのでしょうか?

219 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 22:46:04.00 ID:rsgeG4yq.net]
VBのSendKeysと変わらないと思う

220 名前:デフォルトの名無しさん [2024/06/21(金) 17:49:04.98 ID:LwqdtCE6.net]
>>218
無料のRPAでやる方法もあるよ



221 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 01:38:41.92 ID:uvHlEJ4P.net]
powershellってlinuxでも使えますっけ?

222 名前:デフォルトの名無しさん [2024/06/22(土) 05:23:03.55 ID:dw6Bjmix.net]
使えます

223 名前:デフォルトの名無しさん [2024/06/22(土) 19:51:57.56 ID:dw6Bjmix.net]
Win10のPowerShellのC#がVS2022のC#とバージョンが違って戸惑う…。
Win11ではそこまで違和感ないのだろうか?

foreach (var item in File.ReadAllLines(fileName).Select((line, i) => $"{i + 1,2}:{line}"))

としたかったのにReadAllLinesも使えないし、 $"{i + 1,2}:{line}"部分も使えない。

何か、隔世の感がある…。

224 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 00:24:22.40 ID:Gy0jYBbT.net]
???

225 名前:デフォルトの名無しさん [2024/06/23(日) 01:48:23.24 ID:iAmtDmVE.net]
PowerShell内蔵のC#スクリプトがOS毎にバージョンが違って、使えない機能があって不便だって話。

hello.ps1

Add-Type -Path .\hello.cs
[Hello]::hello()

hello.cs

using System;

public static class Hello
{
public static void hello()
{
Console.WriteLine("Hello World!!);
}
}

226 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 02:33:27.21 ID:QkuO1K/N.net]
まあ現在進行形でメンテされてるからな
むしろOS毎に入るバージョンが違ってくるのは当たり前なのでは…

227 名前:デフォルトの名無しさん [2024/06/23(日) 04:10:59.53 ID:iAmtDmVE.net]
分ってるけど、心の叫びだよ。

あ、PowerShellアップデートしてReadAllLinesの方は使えるようになった。
今更ファイルストリームでopen/closeとか嫌すぎたからホッとした。

228 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 13:37:48.52 ID:ermJYjK6.net]
webアプリのテキスト入力部分にpowershellスクリプトで自動的に文字入力をしています
しかし動作させるタイミングによってIMEが日本語入力になっていたり直接入力になっていたりしています
「無変換」キーに「IMEオフ」を割り当てて文字入力の前にpowershellで自動的に無変換キーを押下させましたが当方の環境では何故か期待通りの結果にならず、やむなくタスクバートレイのIMEアイコンを右クリック(メニュー表示)→「直接入力」左クリックをpowershellで自動でやって実現しています
しかしこの方法はスマートじゃないです
powershellで他のアプリに入力中のIMEの設定を「直接入力」モードにスマートに切り替える方法があれば教えてください

229 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 13:50:30.91 ID:e+eCK7bX.net]
望んでいる答えではないと思うがWebアプリなら素直にブラウザのプラグインでJavaScriptを動かす方法を一度覚えておいたほうが幸せになれると思う
安定性も増すしやれることの幅もかなり広がる

230 名前:デフォルトの名無しさん [2024/06/23(日) 13:52:52.91 ID:eptuMF0K.net]
>>227
ぷっ
バグがあったら動かないのは当然



231 名前:デフォルトの名無しさん [2024/06/23(日) 14:57:30.86 ID:nCpb5rpZ.net]
>>228
WindowsFormsあたり使えばできるんじゃないの?と思ってCopilotに聞いてみた

Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;

public class ImeControl {
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll")]
public static extern int ImmAssociateContext(IntPtr hWnd, IntPtr hIMC);

public static void DisableImeMode() {
IntPtr hWnd = GetForegroundWindow();
ImmAssociateContext(hWnd, IntPtr.Zero);
}
}
"@

思ってたんと違った

232 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 17:48:41.99 ID:ermJYjK6.net]
>>231
有難うございます
一回り難しそうですが、試しながら参考にさせて頂きます

233 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 18:39:00.79 ID:QkuO1K/N.net]
肝心のアレが入ってないからまともに動かなそう
AIをもっと虐めないとだよ

234 名前:デフォルトの名無しさん [2024/06/23(日) 23:34:40.87 ID:iAmtDmVE.net]
>>230
バグじゃなくて、互換性の問題。
古いのC#の文法を使えば良いとは言え、あんまり逆行したかったん。

235 名前:デフォルトの名無しさん [2024/06/23(日) 23:46:54.32 ID:iAmtDmVE.net]
xあんまり逆行したかったん。
oあんまり逆行したくなかったん。

236 名前:デフォルトの名無しさん [2024/06/24(月) 00:41:48.16 ID:sso3G8sO.net]
>>221
使えます。

237 名前:デフォルトの名無しさん [2024/06/26(水) 17:27:29.44 ID:qsKWsaPH.net]
地味にハマったからPowerShell7.5PrevewでC#コード実行の注意点書きこ。

・$Argが$argsに。(ここまではいい)

・$argsに格納されるコマンド引数がカレントディレクトリではなく、「PowerShellを起動したディレクトリ」になっている。
(なので、初期はPowerShellの本体があるフォルダー。しかもcdでカレントディレクトリ変えても、コマンド引数のディレクトリは変化しない)

解決策
(hoge.ps1は$argsを使っているスクリプト)

pwsh hoge.ps1 arg1 arg2

の様にPowerShellを起動してからスクリプトを実行すると、コマンド引数のディレクトリも(そのシェルを起動した時点の)カレントディレクトリに変わる。



238 名前:デフォルトの名無しさん [2024/06/26(水) 17:31:44.50 ID:qsKWsaPH.net]
あ、C#はPowerShell7.5で $"{}"(文字列補間式)使えるようになった\(^_^)/

239 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 09:33:29.65 ID:bVzHKq+e.net]
過去に作られたスクリプトなのですが、
$script=(New-Object System.Net.WebClient).DownloadString("https://○○/dir/file1.js")
として別Webサーバからスクリプトを毎回ダウンロードしていたのですが、
そのWebサーバが廃止されるということで、
そのfile1.jsをPCにダウンロードして、それを毎回読み込ませるようにしたいです

$script=Get-Content .\file1.js
としてみましたが、ファイルは読み込めているようですが、
その後の処理でうまく動作しません

何か方法ありますでしょうか

240 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 21:59:51.65 ID:1ppaObvA.net]
file1.jsのエンコーディングはどうなってるの?



241 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 23:09:31.36 ID:YK96fiDO.net]
>>237
説明が分かりにくい。
たぶん昔からよく混乱の元になってる
$PWD(*-Location)のカレントディレクトリと
[Environment]::CurrentDirectoryのカレントディレクトリの
両方を意識しないといけない問題について調べたらいいと思うよ。
>>239
DownloadString()の戻り値の型は[string]で
Get-Contentは大抵[Object[]]だから型の違いで動作変わってんじゃないの。
Get-Content -Rawにしてみたらどう?

242 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 12:31:22.88 ID:AKI9JxZ5.net]
カレントディレクトリという甘えた幻想は捨てろ

243 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 11:58:14.30 ID:L0BIfwX5.net]
カレンちゃんとディレクトリしたい

244 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 13:02:55.78 ID:LfIamK5n.net]
Get-Item カレンデバイス

245 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 22:31:52.21 ID:gAixcUjS.net]
カレンちゃんって誰だよ競走馬じゃないんだぞ

246 名前:デフォルトの名無しさん mailto:sage [2024/07/08(月) 19:41:40.15 ID:f8BMTbPy.net]
きんモザ

247 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 01:02:53.21 ID:X/v3DPD5.net]
windows10から11に変えたらwindows10ではちゃんと動いていたスクリプトが動作しなくなりました。
ショートカットに「powershell -file スクリプトのフルパス」と書いて目的のファイルをD&Dして使用しています。
ISEからだと一応動作して「引数が足りません」になるんですが、ショートカットからでは一瞬ウインドウが開くだけで何も起きません。
-NoExitをつけてもウインドウが閉じてしまいます。閉じるのが早すぎて正確にはわかりませんがウインドウには何も表示されていないようです。
「consolehost_history.txt」がログのようなので見てみたんですが、何も実行されていないようです。
管理者権限でpowershellを起動してから「スクリプトのフルパス "引数になるファイルのフルパス"」では正常に動作しました。
powershell.exeを右クリックで管理者権限で実行にチェックを入れても動作せず。
windows11になってからpowershellのショートカットを作る方法に変化があったのでしょうか?

248 名前:デフォルトの名無しさん [2024/07/18(木) 01:29:27.44 ID:T4qee4Qo.net]
>>247
多分まさに>237に書いてる仕様変更の影響かと。

249 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 12:34:31.99 ID:X/v3DPD5.net]
>>248
ありがとうございます。 「pwsh -file スクリプトのフルパス」と書き換えたら起動できたんですが、今度は別のところでwindows10では起きなかったエラーが出てしまいました。
$cmfiletxt = Get-ChildItem -Path "$cmtemp" -Recurse -Depth 1 -Filter "$trimfile"
と書いてある行で、
Second path fragment must not be a drive or UNC name. (Parameter 'expression')
というエラーが出ます。
"$trimfile"の中身は例えば「R:\TEMP\cmtmp\amt9996774\アニメA・ダークギャザリング #1「寶月夜宵」 2023-07-10.m2v.txt」です。
windows10では正常に動作していました。
「amt9996774」の所は連携しているソフトがランダムで自動生成するのでこちらからいじることはできません。
どう修正すればいいでしょうか。

250 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 12:46:56.92 ID:2XOaIs3w.net]
>>249
変数名が $cmtemp になってるけど、その中身の文字列は e抜きの \cmtmp\ を含むパスなの?



251 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 13:09:10.50 ID:X/v3DPD5.net]
>>250
そうです。最初にパスを設定する部分を設けています。
$cmtemp = "R:\TEMP\cmtmp"

252 名前:デフォルトの名無しさん [2024/07/18(木) 13:13:45.35 ID:g0scKYj2.net]
>>249
ダブルコーテーションで括ってるからじゃね

253 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 14:22:52.00 ID:eHTBk2KG.net]
-Filterにパスを指定しちゃだめ、っていうエラーメッセージ。
ファイル名部分を指定するんだよ。(ワイルドカード)
でもWin10でもエラーになると思うんだけどな。

254 名前:デフォルトの名無しさん [2024/07/18(木) 14:29:18.66 ID:g0scKYj2.net]
>>252
補足
変数をダブルクォーテーションで囲むと
変数の式が展開されてから渡される
変数の中身がファイル名でスペースを含んでたりすると誤動作する
変数に入ってるんだからそのまま変数で渡せばいい
ファイル名がスペースを含んでいても大丈夫

こんな感じだと思う

255 名前:247 mailto:sage [2024/07/18(木) 18:19:03.04 ID:X/v3DPD5.net]
ありがとうございます。結局$trimfileの中身をフルパスではなくファイル名のみにするようにしたら処理完了しました。
…本当にwindows10ではこれで動いていたんですけどね…?
ただし別の問題が発生しています。あらかじめ作業フォルダを指定してその下にサブフォルダを生成、そこに処理したファイルを展開するようにしてるんですが、
指定した作業フォルダ(日本語)が文字化けしており、文字化けした作業フォルダを改めて作成してさらにその下にサブフォルダを作るようになってしまいました。
write-hostで表示する日本語も同様に文字化けしており、サブフォルダの名前は正常なのでスクリプト自体の問題ではないと思います。
powershellのタイトルバーを右クリック→設定→左のアイコンからpowershellを選択→外観→フォントフェイスをMSゴシックに変更、では解決しませんでした。

256 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 18:48:37.59 ID:2XOaIs3w.net]
>>255
コンソール側の文字コードの問題だと思うよ
レジストリにCodePageを設定すれば解決するはず(「65001」で検索)

257 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 19:04:19.79 ID:eHTBk2KG.net]
pwshが動く時点で普通のwin11じゃない気がする。pwshは一部の物好きな上級者用じゃない?(もうwin11のデフォルトになった?)
pwshのままだと今後も色々問題出るよ。自己解決していける自信がないなら総合的にはwin11の再インストールが手っ取り早いと思う。

258 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 20:08:19.40 ID:7Xw39CjT.net]
powershellが動かなかった理由ってOS変えたからデフォルトのExecutionPolicyの問題で弾かれてただけじゃないの
pwshについては設定変更済みで通ったと
そしてv5向けのスクリプトをそのままv7で動かしたから細かい非互換の問題が出たと

259 名前:247 mailto:sage [2024/07/18(木) 20:55:47.23 ID:X/v3DPD5.net]
>>256
やってみましたが結果変わらずです。

>>258
当初ISE経由でも弾かれたのでBypassに変更済みです。

>>257
powershellのバージョンの問題かと思ってMicrosoftStoreからver7をインストールしました。
試しに7をアンインストールして.5.1が強制的に動くようにしてみたんですが、挙動は振り出しに戻っちゃいました。
互換性の問題で言うとAutoHotkeyもうまくショートカットを発行できないソフトが出てきていますね…。
再セットアップで解決するもんでしょうか。

260 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 21:35:09.26 ID:eHTBk2KG.net]
pwshを入れたのは後退なので、スタート地点に立てたくらいに思えば。

1. ショートカットのあるディレクトリにで右クリック→ターミナルで開く
2. ショートカット(lnk)を開く

でウインドウが閉じずにエラーメッセージを確認できると思う



261 名前:247 mailto:sage [2024/07/18(木) 22:55:07.91 ID:X/v3DPD5.net]
>>260
出てきたエラーをコピーしようとしたらNGワードに引っかかったみたいなので要約すると、
・名前が正しく記述されていることを確認しろ、パスを確認しろ
・ コマンドは見つかりませんでしたが、
現在の場所に存在します。Windows PowerShell は、既定では、現在の場所からコマンドを読み込みません。
このコマンドを信頼する場合は、".\(ファイル名)" と入力してください。

言われた通りに.入力したら「引数がないため処理を終了します。」となり、一応正常に終了しました。

262 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 23:26:42.40 ID:gkVcHWUr.net]
恐らく11から強制的に使わされてるターミナルが悪いんだろうな
MSストアで入るアプリは総じてゴミだから今すぐ使用中止しろ
ttps://qiita.com/dokimiki/items/f1075003cb37f1b542a8

263 名前:247 mailto:sage [2024/07/18(木) 23:57:38.19 ID:X/v3DPD5.net]
>>262
リンク先を試してから、powershellを開いてから実行する方法では修正前のスクリプトで文字化けもせず正常に終了しました。
しかしショートカットのD&Dする方法では変わらず一瞬でウインドウが閉じました。

264 名前:デフォルトの名無しさん [2024/07/19(金) 11:00:27.12 ID:70UaCPmY.net]
>>263
powershellのスクリプトの最後に pause でも追加しておけばいいんじゃね

265 名前:247 mailto:sage [2024/07/19(金) 12:40:24.75 ID:ct1DQagX.net]
あの…、なんか寝て起きて試したら動きました…。
昨日からマジで何も変えてない…。せいぜいUSB-DACのドライバ当てたくらい?
とりあえずこのまま様子見ます…。色々とありがとうございました。

266 名前:デフォルトの名無しさん mailto:sage [2024/07/19(金) 15:14:54.49 ID:jwlCgmdc.net]
今のターミナルで困ることって何だろう
--headlessが使えないことくらい?
conhostより重いって意見はあるかもしれないけど.NETと比べれば誤差みたいなものだし

267 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 22:11:17.98 ID:m0XhNdSd.net]
Windows terminalは普通に優秀だと思うけど

268 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 23:51:02.31 ID:vKWhifz8.net]
無変換キーを押すと@が書き込まれること以外は完璧

269 名前:デフォルトの名無しさん mailto:sage [2024/07/22(月) 09:11:09.38 ID:C7pnRrY6.net]
cmdと動作が異なる意味では欠陥
最初にppwershellをコンソールアプリで公開したのは失策
WSH使いからは失笑

270 名前:デフォルトの名無しさん mailto:sage [2024/07/22(月) 13:17:32.45 ID:PeYRIg1J.net]
コンソールホストとシェルの区別がついてないお🐴🫎さんかな



271 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 12:32:42.70 ID:+W8EF3Nh.net]
ISEって2019年末時点でオプション機能化とか終息に向かうとか言われてたみたいだけど現行Windows11にも普通にプリインストールされてるよな
終息する話は延期になったんだろうか
まぁ弊社みたいなインストール手続きがクッソ面倒なところでは助かるんですが…

272 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 12:49:12.36 ID:KGtSZjqO.net]
収束するには代わりにVSCodeをプリインストールするようにしてくれないと

273 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 15:16:22.47 ID:7uwMSqss.net]
削除予定はないよ
今後の機能追加がないだけ

プリインストールしたらしたで欧米人がMS訴えるじゃん?
エディタはどうぞお好きなものをお使いください
未だにVSCodeすらインストール許可が出ない会社ならそこの組織の問題
淘汰されるまでそうしていればいい
客先のサーバーで作業中のエンジニアならスクリプトは事前準備したものだけ使うか一旦課題を持ち帰れ

274 名前:デフォルトの名無しさん mailto:sage [2024/07/28(日) 21:35:37.31 ID:cLn1FmEd.net]
ISEの優位性って何?使ったことないけどvscodeにできないことができたりする?

275 名前:デフォルトの名無しさん mailto:sage [2024/07/29(月) 07:56:32.32 ID:4FIXkUHw.net]
プリインストールされていること

276 名前:デフォルトの名無しさん [2024/07/30(火) 00:37:00.12 ID:CUjc7QCy.net]
hogehoge.txtの重複するレコードを
powershell -command "get-content hogehoge.txt | sort-object | get-unique | write-host"
みたいにして取り除いています。
重複除去の前に外部コマンドによる処理を追加したくなり、まずファイルからではなく標準入力から読み込んだデータの重複除去に取り組んでいますが上手く行きません。
当初get-contentをread-hostに置き換えればうまく行くかと思いましたがダメでした。
type hogehoge.txt | powershell -command "read-host | sort-object | get-unique | write-host"
考えてみればそれも当然で、いったん標準入力を丸呑みにして溜め込んでおかないとsortもuniqもできないですよね。
MSのサイトで配列に溜め込んでいくみたいな用途に使えそうな命令を探しましたが見あたりませんでした。
なんか解決法ないでしょうか?

あとついでに聞いちゃうんですけどunixのコマンド(wcとかcatとか)をその言語で書き直すみたいな本のpowershell版ってないもんですかね。

277 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 01:55:59.46 ID:0EE76/Sc.net]
Out-String -Stream

278 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 11:15:11.79 ID:jBvTVZZ/.net]
無理にワンライナーやパイプラインで繋げて書かずに
スクリプトファイルを作ってそれを呼び出す方が柔軟性があって整理もできて使いやすい

279 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 12:15:40.81 ID:tWSTSpQm.net]
無理にでもワンライナーやパイプラインで繋げて書くのがPowershellの醍醐味

280 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 12:48:31.64 ID:jBvTVZZ/.net]
>>276 みたいに困ったときはスクリプトファイルで
制御構文やら変数やらクラスやら使った方が
色々試し易くて色々整理できていいじゃん



281 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 21:02:35.18 ID:EaRTEGq5.net]
[Console]::In.ReadToEnd() -replace '\r?\n$' -split '\r?\n'

その外部コマンドによる処理もPowerShell内でやればいい気がする

282 名前:281 mailto:sage [2024/08/01(木) 18:57:02.91 ID:nKkP9XuY.net]
そういえばと思って試したら$inputでいけたわ。なんで忘れてたんだろ

283 名前:デフォルトの名無しさん mailto:sage [2024/08/02(金) 09:11:09.42 ID:gKkfhLC1.net]
>>276
Ruby で作ってみた

input_str = "5\n11\n33\n9\n0\n9\n11\n"

# 末尾の改行を削除してから、数値型に変換する。
# 重複を排除し、ソートする
input_ary = input_str.each_line.lazy.map do |line|
line.chomp!
line.to_i
end.uniq.force.sort

p input_ary
#=> [0, 5, 9, 11, 33]

284 名前:デフォルトの名無しさん mailto:sage [2024/08/02(金) 21:54:58.24 ID:l/+AFQUJ.net]
Rubyの人来るの遅いぞもう飽きたのか?ww

285 名前:デフォルトの名無しさん mailto:sage [2024/08/02(金) 21:57:08.30 ID:4wv1Q78q.net]
過疎過疎5ちゃんなんかよりツイッタランドで凸でもすれば

286 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 16:52:34.25 ID:Qq+DEfW6.net]
新しい Windows11マシンに pwshをインストールして
以前から使ってるファイルを そのままコピーしたら…何故だか起動時設定を読み込んでくれない

…と思って 調べたら

$PROFILE が
以前からのPCでは
C:\Users\(私のユーザー名)\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

に対して、新しいのでは
C:\Users\(私のユーザー名)\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

profileを置くディレクトリが違ってたということ.
pwshのバージョンは どちらも最新(同じ)なのに

…なのですが、特に どちらかで $PROFILEを設定するようなことは していない.
環境変数なども特に設定していないし
Program Files/7 直下には profile的なものは 置いていない
…でもどこかで指定しているのを自分で忘れたんだろうか?
複数マシンを管理するにあたって 面倒なので…とりあえず原因になりうるものを知りたいのです

287 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 18:13:57.62 ID:J4fT6PqJ.net]
>286
最新のWindowsにも入ってる「古いpowershell」が原因っぽい. 新しいのを入れても残ってるので そういうことはある

288 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 18:54:54.18 ID:dRTmSCrE.net]
>>286
デフォルトの$profileのパス設定が異なるマシンがあってその原因が知りたい、ってことなのかな?
ちなみに、新しいマシン側の$profileは5.x系(いわゆるWindows PowerShell)のデフォルトパスと一致してる

289 名前:デフォルトの名無しさん mailto:sage [2024/09/28(土) 00:24:19.73 ID:xELx2i6V.net]
ExecutionPolicyがRestrictedのままでProfileがロードされないとか?

290 名前:デフォルトの名無しさん [2024/09/30(月) 10:14:56.15 ID:OEXqADpi.net]
286です すいません、自分の混乱の原因がわかりました。
新しいWindows11のマシンにも5.x系は入っていて、7.xのpwshをインストールしてもそれは残る.
そして、私は タスクバーに「ピン留め」して起動するのですが、pwshを起動した状態でピン留めしても いったん終了させてからアイコンをつつくと 5.x系が起動してしまう…というところに 気がついていなかったというわけです. ピン留めしたのは たしかに7系だったのに. なんだか納得いかない感じ



291 名前:デフォルトの名無しさん mailto:sage [2024/09/30(月) 10:46:54.62 ID:OEXqADpi.net]
ピン留めされるのは「ターミナル」であって、その中で何を起動するのかは 右クリックで選択できるようになっており、そのデフォルトが5.x系であるように見えます。もちろん以上のことがわかっていれば ここから7.xを選んで起動するのも簡単ではあるのですが…これはカスタマイズできるんだろうか

292 名前:デフォルトの名無しさん mailto:sage [2024/09/30(月) 13:04:09.12 ID:AYohfY5N.net]
ターミナルのデフォルトはターミナルの設定画面で選べるよ
既定のプロファイルってやつ

293 名前:デフォルトの名無しさん mailto:sage [2024/09/30(月) 17:54:24.00 ID:OEXqADpi.net]
292← できました!ありがとうございます
…というか、これまで(Windows10)は「ターミナル」じゃなかったということを今日 知りました(笑)

294 名前:デフォルトの名無しさん mailto:sage [2024/10/01(火) 06:43:45.64 ID:/Tad9Lz2.net]
コマンドプロンプトで、where powershell
と入力すれば、powershell.exe の絶対パスが分かる。
だから、絶対パスを書けば、exe を指定できる

C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe

ここに、2つ以上表示されたら、上の方が優先して実行される

295 名前:デフォルトの名無しさん mailto:sage [2024/10/01(火) 08:34:51.39 ID:CEO/MZ1M.net]
ワイ氏、whereというコマンドがあることをパソコン歴20年にして初めて知る

296 名前:デフォルトの名無しさん mailto:sage [2024/10/01(火) 08:53:10.90 ID:lHW1RCWi.net]
Powershell v5はpowershell.exe、v7はpwsh.exeなのでこれらの混在環境でパスの優先順位が問題になることは基本ない
むしろコマンド名を混同したままでは取り違えが起こりそうなので一応

297 名前:デフォルトの名無しさん mailto:sage [2024/10/01(火) 21:40:49.64 ID:+PXXCXjN.net]
20年前のWindowsにはまだwhereコマンドは標準搭載されてなかったから知らなくても仕方ない
一応リソースキットやサポートツールには入ってたけど

298 名前:デフォルトの名無しさん mailto:sage [2024/10/02(水) 21:22:59.58 ID:PTqKnWGQ.net]
20年ぐらい前から個人でPathが通ってるところに ls.bat や which.bat を作って同等のことをやってた
Unix(当時はまだUnixは普通に使われていた)やLinux も普通に使ってるとつい ls って入力していらっとしてしまうから必須だった

299 名前:デフォルトの名無しさん [2024/10/14(月) 11:07:36.62 ID:iqlRL8W8.net]
>>298
UNX・LinuxのlsコマンドだってシェルやOS依存だぜ?

300 名前:デフォルトの名無しさん [2024/10/14(月) 11:10:46.06 ID:iqlRL8W8.net]
Windowsの基本知識がないのにPowerShellを使うというのも何がなんだかわからないやつだ



301 名前:デフォルトの名無しさん mailto:sage [2024/10/14(月) 21:22:43.79 ID:6g0FV4Kx.net]
>>299
UNIXでlsが使えない環境があるの?

302 名前:デフォルトの名無しさん mailto:sage [2024/10/14(月) 22:47:46.01 ID:Fd8j7Mhu.net]
Powershellの話をする気がないなら黙れジジイ

303 名前:デフォルトの名無しさん mailto:sage [2024/10/14(月) 23:07:14.44 ID:rwiJ8lRR.net]
>>301
無いのでecho *でやっていた環境があるのだ

そう、あれはLinuxっていうやつだった

304 名前:デフォルトの名無しさん mailto:sage [2024/10/15(火) 06:06:09.78 ID:CzVFQLgH.net]
>>303
スレチ

305 名前:デフォルトの名無しさん [2024/10/15(火) 20:55:15.08 ID:7T7mXQAC.net]
>>298
PSのcatとUnix系のcatが別物ってくらい違うのがね…。
おまけにDOSコマンドのtypeもPSとコマンドプロンプトで違う。
(PSのcat/typeはget-contentの別名)

PSだとリストを受け取るので、カンマで区切る必要がある。

cat file1, file2, file3

C#で自作したコマンドとも、元からあるDOSコマンドとも違うって…。
MS謹製のIDE(VS)で自作したコマンドと連携撮れないMS謹製のシェルェ…。

306 名前:デフォルトの名無しさん mailto:sage [2024/10/15(火) 21:47:59.44 ID:lPGbp20O.net]
エイリアスに互換性を求める人なんていたんだ
そんなの新しいコマンドを覚えやすくするための糖衣でしょ
DOSみたいなクソダサレガシー環境との互換性を尊重してたら呪縛なんてもんじゃない
シェルスクリプトって古今東西きったねえ一貫性のないもんなんだから拘っても虚しいだけよ

307 名前:デフォルトの名無しさん mailto:sage [2024/10/15(火) 23:10:10.50 ID:qo7/LMKy.net]
>>306
どの言語でもrubyを求める奴がいるように
PowerShellにもUnix系シェルを求めちゃうんだろうな

308 名前:デフォルトの名無しさん [2024/10/16(水) 07:29:00.82 ID:SZo2N9Nf.net]
>>301
コマンドの実装は違うよ

309 名前:デフォルトの名無しさん mailto:sage [2024/10/16(水) 09:56:19.21 ID:NaAnwllp.net]
>>305
Remove-Alias cat
function cat([Parameter(ValueFromRemainingArguments=$true)][string[]]$Path){Get-Content @PSBoundParameters}

これで文句ないだろ

310 名前:デフォルトの名無しさん [2024/10/17(木) 00:37:51.84 ID:yqUeq3Bo.net]
PowerShellでLINQをメソッドチェーンで書く方法ってある?
静的メソッドで[Enumerable]::Select()みたいに書くと()が増えてガチャガチャしちゃうのがなぁ…



311 名前:デフォルトの名無しさん [2024/10/17(木) 00:38:50.49 ID:WrCN832N.net]
>>309
そういうコマンドに出合うたびに毎回そんなの書くのはね…。
そんなこんなでLinux(bash)に落ち着くんだよね…。

312 名前:デフォルトの名無しさん [2024/10/17(木) 00:49:20.12 ID:yqUeq3Bo.net]
>>311
俺は逆に会社でWindows使う機会が多すぎてLinux(*nix)コマンド側の記憶が消えそうになってるな…
たまにLinux使うとPowershellみたいにパイプラインを文字列じゃなくてオブジェクトが通るつもりで書きそうになる

313 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 01:09:19.82 ID:YcyvXrpH.net]
>>311
お前は何を言ってるんだ
catエイリアスを消してbashっぽい動きの関数をcatの名前で登録し直すって内容なんだから
これをprofileにでも貼り付けて使えって意味だろうが

314 名前:デフォルトの名無しさん [2024/10/17(木) 02:10:19.27 ID:WrCN832N.net]
>>313
うん。
そう理解してる。
PowerShellってよりは周辺環境が追い付いてない印象だけど、まだLinuxでbash触る方が楽かな。
もうしばらく進化を待ちますね。

315 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 11:09:20.30 ID:wdGjJarp.net]
スクリプト書くのはbashよりpowershellの方が書きやすいし読みやすい
そしてlinuxでもpowershell使えるしで重宝してる

316 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 21:13:19.55 ID:ooYpCywP.net]
スペースとコンマの違い程度で発狂して上から目線でもうしばらく進化を待ちますねって面白い人だなぁ
そもそも進化してないのはUNIXシェルのほうでしょ

317 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 13:56:03.02 ID:wVDH4S6Q.net]
space と , はさすがに気付くと思うが
: と ; の違いは老眼にはきつい

318 名前:デフォルトの名無しさん mailto:sage [2024/10/19(土) 10:49:56.95 ID:0/OluZJS.net]
:(コロン)ていう名前が美味しそうな響きなんだよなぁw

319 名前:デフォルトの名無しさん mailto:sage [2024/10/20(日) 10:17:27.24 ID:Y993j978.net]
コロネじゃないんだから

320 名前:デフォルトの名無しさん mailto:sage [2024/10/20(日) 10:22:09.68 ID:/FrbdBj7.net]
マロンかと思った



321 名前:デフォルトの名無しさん mailto:sage [2024/10/20(日) 13:53:57.93 ID:hxgHNqIu.net]
LinuxとかDOSコマンドを、デフォルトのエイリアスでPowerShellコマンドレットに結びつけておくってのは悪手だよなー
他環境利用者の移行配慮ってなら、例えば「cat」を「Get-Help Get-Content」を実行する関数へのエイリアスにするとか、何かやりようあったんじゃないかと思う。
PSv1、v2の出来の悪さ、様々な考慮不足がずっと足引っ張ってると思う。

322 名前:デフォルトの名無しさん mailto:sage [2024/10/20(日) 18:37:33.24 ID:sfhCtbKo.net]
curlとかシンプルな本物使いたいことの方が多いから邪魔なだけ

323 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 01:06:16.28 ID:ursFBC+1.net]
エイリアスはハマることがあるので不評

324 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 01:47:50.43 ID:9ofaZL13.net]
sh系はともかく、cmdと全く別のコマンド名覚えなおすのも慣れとはいえ面倒なのは確かだからしょうがないんじゃない
補完できても長いものは長かったし
当時からWSLがあれば別だったんだろうけど

325 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 02:22:41.82 ID:fVCz7bM3.net]
このスレを見ていれば分かるけど、自分がいまcmdを実行しているのかpowershellなのかpwshなのか分かってないユーザがかなりを占める
そんなごく普通のWindowsユーザーたちがdirやcdで適当にやったらなんか動いたとか、同じコマンドで動くらしいからオレも使ってみようかなとかいったハードルを下げる要素の重要性は無視できない
複数パラメータの区切りがスペースかカンマか?マジどうでもいいよw
Windowsの新しいシェルスクリプトなんて相反するニーズに縛られまくるからどんな仕様にしたところで数え切れない文句が飛んでくる

326 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 21:43:14.36 ID:iHmIY3KR.net]
>>324
>当時からWSLがあれば別だったんだろうけど

WindowsでUNIXシェルが使えないから仕方なく欠陥品のPowerShellを作った、とか思ってそう

327 名前:デフォルトの名無しさん mailto:sage [2024/10/22(火) 00:45:55.83 ID:CtvGpoP8.net]
>>326
思考が卑屈すぎるわw エイリアスの話しかしてないよ

328 名前:デフォルトの名無しさん mailto:sage [2024/10/22(火) 12:24:39.31 ID:SSjePDmS.net]
curl など誤解を招きかねないエイリアンは害悪でしかない
% とか ? は可読性上がる気がする

329 名前:デフォルトの名無しさん mailto:sage [2024/10/22(火) 22:53:22.74 ID:trzbvHFT.net]
selectにも記号一文字のエイリアスあってもいいんじゃないかと思う

330 名前:デフォルトの名無しさん mailto:sage [2024/10/28(月) 21:16:39.09 ID:ZTog7VUm.net]
そう思うなら自分で勝手にアイリアスを定義すればいいだけだよね



331 名前:デフォルトの名無しさん mailto:sage [2024/10/28(月) 21:22:49.73 ID:U22PtxVm.net]
各々が好き勝手にエアリアルを使っているとコミュニケーションに支障をきたすから困る

332 名前:デフォルトの名無しさん mailto:sage [2024/10/29(火) 09:23:16.64 ID:Qywuhmt6.net]
> WindowsでUNIXシェルが使えないから仕方なく欠陥品のPowerShellを作った、とか思ってそう
開発の経緯としてはまさにその通りなんだけどな
WindowsでUNIXシェルを整備するプロジェクトが頓挫して、根本的にWindowsに適した設計が必要であるということで生まれたのがPowerShell
なおオリジナルの開発者は現在はGoogleへ移籍し、UNIXシェルの世界へと還っていった模様

333 名前:デフォルトの名無しさん mailto:sage [2024/10/29(火) 09:29:09.19 ID:oyxmU1Yp.net]
cygwinには長らくお世話になった

334 名前:デフォルトの名無しさん mailto:sage [2024/10/29(火) 19:18:49.19 ID:/c01W0NL.net]
>なおオリジナルの開発者は現在はGoogleへ移籍し、UNIXシェルの世界へと還っていった模様
なおGoogleへ移籍後は何の成果も得られてない模様

335 名前:デフォルトの名無しさん mailto:sage [2024/10/29(火) 23:17:38.65 ID:/bXBK+wh.net]
Linuxの管理マネージャやそのシェルのPowerShell化をしていたりして、
そのうちカーネルソースのPowerShellマネジメントレイヤーに取り込まれたり
Fedora、Ubuntuに適用される見込みである

336 名前:デフォルトの名無しさん mailto:sage [2024/10/30(水) 11:01:45.95 ID:cBVsI/1s.net]
Azureならともかく、そんなもんGCP採用するような層にニーズあるかねえ
どう考えてもAzureを利することにしかならずGCPのシェアに対して悪影響しかないだろ
最近は首切りしまくってたのに最上位格エンジニアは気楽なもんだな

337 名前:デフォルトの名無しさん mailto:sage [2024/10/30(水) 20:31:44.86 ID:x0G86HEF.net]
PowershellはAdd-Type辺りの機能は便利だけど言語としてはゴミ

338 名前:デフォルトの名無しさん mailto:sage [2024/10/31(木) 21:50:30.83 ID:uhxgBp24.net]
UNIXシェルはもっと言語としてはゴミなんだよなぁ

339 名前:デフォルトの名無しさん mailto:sage [2024/10/31(木) 23:02:56.00 ID:va++Flqd.net]
普段そういうゴミしか作者の周りになくて間違えて拾ってきちゃったんやな

340 名前:デフォルトの名無しさん [2024/11/01(金) 02:03:26.53 ID:EQMsSXTB.net]
>>338
シェルはUIだぞ?



341 名前:デフォルトの名無しさん mailto:sage [2024/11/01(金) 04:01:30.22 ID:+lXxXu7p.net]
>>328
gal見てたらcurlだけでなくwgetもiwrだった

342 名前:デフォルトの名無しさん mailto:sage [2024/11/01(金) 04:58:32.80 ID:4H4fm5Ic.net]
エイリアスといえばパラメータのエイリアスにも多分いろいろundocumentedなのあるよな?
-ArgmentListが-argsで通ったりとか規則的な略じゃないやつ、これは短くて分かりやすいからいいが
-argなら曖昧さのない限り頭から略せるという規則通りなんだけど

こういう個別のまとめた文書ってある?
一部は
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_commonparameters
にあるのは知ってる

343 名前:デフォルトの名無しさん mailto:sage [2024/11/01(金) 09:06:40.20 ID:vIWZBp6A.net]
Get-Help -Fullの、パラメータのエイリアス

344 名前:デフォルトの名無しさん mailto:sage [2024/11/17(日) 09:49:45.91 ID:LBdK5SU3.net]
Windows Server 2025 以降で削除された機能または開発されなくなった機能
https://learn.microsoft.com/ja-jp/windows-server/get-started/removed-deprecated-features-windows-server-2025

Windows PowerShell 2.0 エンジンは削除されました。アプリケーションとコンポーネントはPowerShell 5.0 以降に移行する必要があります。

345 名前:デフォルトの名無しさん [2024/11/20(水) 17:28:43.06 ID:jLoC/a6V.net]
AD一覧をcsv出力すると区切りが半角スペースになってExcelで取り込めない。
ググっても同じ症状の人が出て来ない

346 名前:デフォルトの名無しさん mailto:sage [2024/11/20(水) 17:56:33.65 ID:itZFOqj8.net]
とりあえず-Delimiterで指定すれば?

347 名前:デフォルトの名無しさん [2024/11/20(水) 18:05:31.34 ID:jLoC/a6V.net]
OutfileってDelimiterできないよね?
Exportだと文字コードをdefaut、utf-8にしても数列で出力されちゃう

348 名前:デフォルトの名無しさん mailto:sage [2024/11/20(水) 19:09:02.72 ID:b8mbz+Om.net]
Out-File? ならその前にConvertTo-Csvで変換してるんじゃないの?

349 名前:デフォルトの名無しさん mailto:sage [2024/11/20(水) 21:42:00.83 ID:KXgtJp1v.net]
powershellのなんちゃってCsvコマンドレットはExcelで扱えるCSVと特に親和性があるわけでもなく、俺俺CSV止まりだからあんま使う価値ないかも

350 名前:デフォルトの名無しさん mailto:sage [2024/11/20(水) 22:02:13.56 ID:KXgtJp1v.net]
ではCSV扱うなら何がいいかと言えばCsvHelperが定番なんだけど、C#や.NETの知識が要るね
AD一覧程度なら自力でフィールドをカンマで区切ったっていいよ



351 名前:デフォルトの名無しさん mailto:sage [2024/11/20(水) 22:56:49.84 ID:+ywVzG00.net]
Announcing the Public Preview of AI Shell
https://devblogs.microsoft.com/powershell/announcing-the-public-preview-of-ai-shell/

352 名前:デフォルトの名無しさん mailto:sage [2024/11/21(木) 09:11:03.40 ID:uYan55MO.net]
CSV変換標準コマンドレットはデータ前後のスペース文字が消えるので
一切データ欠落しちゃいけない場合は注意

353 名前:デフォルトの名無しさん mailto:sage [2024/11/27(水) 23:16:05.27 ID:aNQZM+B9.net]
Export-Csvって自力でクォーテーション外してた時代あるし地味に改良してるけどな

354 名前:デフォルトの名無しさん mailto:sage [2024/11/30(土) 22:11:49.94 ID:LJbTxW4W.net]
Should PowerShell 7.x ship inbox in Windows?
https://github.com/PowerShell/PowerShell/discussions/24340

355 名前:デフォルトの名無しさん mailto:sage [2024/12/01(日) 13:20:57.08 ID:8Yw35ga9.net]
>>354
PowerShell7.xは通常利用されないpwshシェルとして実装されても良いと思うよね
標準シェルをpowershell.exeにしておけば互換性問題無いし

ただ7.xが5.1の互換とか言ってるのはかなり微妙

356 名前:デフォルトの名無しさん [2024/12/11(水) 10:15:30.38 ID:Bk1Et5xQ.net]
引数の文字数上限って回避方法ってありますか?
複数のフォルダをドラッグ&ドロップして使いたいけどいい方法が思いつきません

357 名前:デフォルトの名無しさん mailto:sage [2024/12/11(水) 22:01:27.57 ID:J5p4fYKY.net]
WSHやjavascript限定ではあるけどファイラーのTablacus Explorer使えば会費できたと思う

358 名前:デフォルトの名無しさん [2024/12/15(日) 21:59:46.99 ID:D9xraIFr.net]
>>356
ネタだよな?

Windowsはパス文字列の長さの上限がかなり低いので長いパスはWindowsでは扱えない

359 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 11:35:41.45 ID:EDggbpJc.net]
引数の文字数上限なんて気にしたこともないわ
一体どんなスクリプト組んでるんだ?

360 名前:デフォルトの名無しさん mailto:sage [2024/12/16(月) 12:33:48.42 ID:BlyRMH2R.net]
複数のフォルダをD&Dしてとあるから
大量のフォルダ・ファイルを渡すんだろうな
これは言語の制限じゃなくてエクスプローラかcmdかのシェルの制限だろう



361 名前:デフォルトの名無しさん mailto:sage [2024/12/17(火) 00:26:16.95 ID:qauPzx29.net]
powershellのIDEってやっぱvscode一択?

362 名前:デフォルトの名無しさん [2024/12/18(水) 15:12:46.26 ID:vtNCD/9a.net]
>>361
Windowsのスタートメニューを見たことがないのか?

PowerShell ISEは無視、Visual Studioも無視するなら、あなたの希望通りにVSCodeになるな。

363 名前:デフォルトの名無しさん mailto:sage [2024/12/18(水) 22:53:36.03 ID:r/ciUEmV.net]
いや普通にVSCode一択だよ
ISEは開発停止がアナウンスされてMicrosoft自身がVSCodeを推奨してる

364 名前:デフォルトの名無しさん mailto:sage [2024/12/18(水) 23:49:49.43 ID:qUh0YP4m.net]
powershellの開発環境としてvisual studioが挙がることってあるか…?

365 名前:デフォルトの名無しさん mailto:sage [2024/12/19(木) 00:10:06.38 ID:MPXM+zkD.net]
VScodeなら分かる

366 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 16:45:21.87 ID:3/R2Wu0q.net]
.ps1のスクリプトを右クリックから実行しようとすると
最初に[実行ポリシーを変更しますか?…]というのが出て、キーボード操作が必要になるんだけど
これは出ないようにできないのかな?

367 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 17:27:08.04 ID:HkxgIAjH.net]
うろ覚えだけど
右クリからやるやつはポリシーがhogeだったらbypassにするみたいなif文が入ってた気がする
レジストリで変えれたはずだけど出先だから細かくは分かんないや
適当にググったら出てくるんじゃないかな

それかif文にかからないようにポリシーの方を変える

368 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 17:47:50.11 ID:3/R2Wu0q.net]
>>367
できました!
ありがとうございます

369 名前:デフォルトの名無しさん [2024/12/21(土) 19:56:38.76 ID:IOryZJAZ.net]
>>368
間違って実行してしまわないよう、わざわざそういう仕様になっていることを忘れないように

370 名前:デフォルトの名無しさん [2024/12/21(土) 19:57:11.83 ID:IOryZJAZ.net]
>>368
バッチファイルというものを知った方がいい



371 名前:デフォルトの名無しさん [2024/12/21(土) 20:34:08.41 ID:kQ229ZTv.net]
的外れなレス付いてんなw

372 名前:デフォルトの名無しさん mailto:sage [2024/12/23(月) 10:35:42.88 ID:8lbwsaDk.net]
バッチこい

373 名前:デフォルトの名無しさん [2024/12/24(火) 22:41:53.48 ID:S4CkJ4V1.net]
>>371
そもそもGUIで人間の操作で実行というのが変

何のための自動化なのかわからない

374 名前:デフォルトの名無しさん mailto:sage [2024/12/24(火) 23:14:00.94 ID:ALyk/+99.net]
どこからGUIの話が出てきたんだ…?

375 名前:デフォルトの名無しさん [2024/12/25(水) 17:59:30.20 ID:YmcCoB80.net]
>>374
「右クリック」と書いてある

376 名前:デフォルトの名無しさん mailto:sage [2024/12/25(水) 21:34:02.80 ID:G9TljzDw.net]
ps1で思考停止するような子を見てるとそう
もっと頭を使う訓練を教育機関で受けさせとかないとやばいのではと総務省に問い質したくなるね

377 名前:デフォルトの名無しさん mailto:sage [2024/12/26(木) 00:31:28.78 ID:3BPBxHkr.net]
総務省…?

378 名前:デフォルトの名無しさん mailto:sage [2024/12/27(金) 11:14:09.84 ID:nSbaFnN8.net]
>>373
ps1ファイルを右クリでpwshコンソールが起動してスクリプトが実行される
て普通にあることだと思うが

379 名前:デフォルトの名無しさん mailto:sage [2024/12/27(金) 12:09:30.67 ID:+TT5rJ9I.net]
もう既に解決して終わってるし、>>366に書いてることをもう一度書く必要はない

380 名前:デフォルトの名無しさん mailto:sage [2025/01/02(木) 12:24:43.46 ID:XSssqHtC.net]
$s = "昔し羅馬にこう云う話しがある。後学のため聞いておけと云うんです"
Write-Host -ForegroundColor Red -BackgroundColor Black "$($s[12]) $($s[24]) $($s[23]) $($s[19])"



381 名前:デフォルトの名無しさん [2025/01/07(火) 17:30:11.98 ID:150rExn4.net]
>>378
それはGUIの操作

382 名前:デフォルトの名無しさん [2025/01/07(火) 17:33:24.53 ID:150rExn4.net]
実行形式のファイルを実行するときにしつこく確認する仕組みに変化した歴史も知らないんだろ。

383 名前:デフォルトの名無しさん mailto:sage [2025/01/08(水) 01:30:32.18 ID:T5jAWt2M.net]
的外れ過ぎる

384 名前:デフォルトの名無しさん mailto:sage [2025/01/08(水) 09:05:49.08 ID:DiodmN71.net]
>実行形式のファイルを実行するときにしつこく確認する仕組み

何それ

385 名前:デフォルトの名無しさん mailto:sage [2025/01/12(日) 01:09:34.15 ID:7sMi3UMV.net]
gci C:\Windows -include *.log,*.dat
は要素が一つも出なくて
gci C:\Windows\*.* -include *.log,*.dat
gci C:\Windows -recurse -include *.log,*.dat
はOKってどういう理屈なの?
できれば一番上の書きかたしたい…

386 名前:デフォルトの名無しさん mailto:sage [2025/01/12(日) 10:26:34.53 ID:+COVob5t.net]
>>385
仕様。
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-5.1#4-include

理屈は知らん。過去ログになんかあったような、ちょっと違ったような。(-Filterの話だったような)

387 名前:デフォルトの名無しさん mailto:sage [2025/01/12(日) 14:27:17.12 ID:+gCgMQG7.net]
初期リリースで適当に用意されたコマンドレットの仕様が残ってるだけだから理屈なんて無いだろうよ
gciのオプションは普通の人の感覚と違うからWhere-Objectにパイプで渡してフィルタする方がおかしな事にならないよ

388 名前:デフォルトの名無しさん mailto:sage [2025/01/14(火) 14:43:26.79 ID:It61Xpnn.net]
末尾のスラッシュの有無でフォルダ自体を指すのかその配下を指すのかを区別するのはUNIXでは割と珍しくないだろう
Windowsだとファイルパスを文字列というより何らかのエンティティを参照するものと考える傾向があるから馴染みにくいわな

389 名前:デフォルトの名無しさん mailto:sage [2025/01/14(火) 19:43:42.33 ID:yWOGeGxK.net]
この話は末尾がスラッシュかどうかは関係ないよ
Include, Excludeを使うときはワイルドカードを含めないとPathで指定した項目自身しかヒットしなくなるというこのコマンドレット固有ルールの話

390 名前:デフォルトの名無しさん [2025/01/27(月) 01:42:20.03 ID:hFrLE9a7.net]
V7.47
https://github.com/PowerShell/PowerShell/releases/tag/v7.4.7
V7.5
https://github.com/PowerShell/PowerShell/releases/tag/v7.5.0
が出ました



391 名前:デフォルトの名無しさん [2025/01/27(月) 01:43:08.84 ID:hFrLE9a7.net]
今回から.exeがある。

392 名前:デフォルトの名無しさん mailto:sage [2025/01/27(月) 21:48:58.99 ID:sL8l+nw9.net]
.exe版と.msi版の違いが分からん
.msiだと問題が起きる環境でもあるのか

393 名前:デフォルトの名無しさん mailto:sage [2025/01/27(月) 22:00:26.88 ID:PdZna4r2.net]
MDMで配れない

394 名前:デフォルトの名無しさん mailto:sage [2025/02/05(水) 01:17:36.51 ID:lMdV6DH3.net]
powershellの実行権限デフォルトで縛ってるのなんでなの
batは縛ってないのに

395 名前:デフォルトの名無しさん mailto:sage [2025/02/05(水) 09:34:59.87 ID:RMyxJ4z6.net]
batが作られた時代はセキュリティという概念がほとんどなかった
いまや甘いと社会的影響も甚大で徹底的に叩かれる時代
何もわからない初心者がメールに添付されたスクリプトを実行できなくて困惑するくらいで丁度いい
batという穴が残っているといってもいまは過渡期
移行する選択肢がありたとえば組織のルールで禁止してメールフィルタで弾けばいい

396 名前:デフォルトの名無しさん mailto:sage [2025/02/05(水) 11:32:38.10 ID:Mu7T1O7D.net]
情弱は我慢して使えってこと

397 名前:デフォルトの名無しさん [2025/02/07(金) 21:28:42.53 ID:lNWVt+S0.net]
>>394
誰でも間違って重大ミスをする方がいいのか?

398 名前:デフォルトの名無しさん mailto:sage [2025/02/08(土) 08:16:37.94 ID:cxNGtJGK.net]
https://learn.microsoft.com/ja-jp/powershell/scripting/security/security-features
> 実行ポリシーは、Windows プラットフォームにのみ適用されます。

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_execution_policies
> Windows 以外のコンピューターでは、既定の実行ポリシーは Unrestricted され、変更できません。 Set-ExecutionPolicy コマンドレットは使用可能ですが、PowerShell はサポートされていないというコンソール メッセージが表示されます。 Windows 以外のプラットフォームでは Get-ExecutionPolicy は Unrestricted を返しますが、これらのプラットフォームは Windows セキュリティ ゾーンを実装していないため、実際の動作は Bypass と一致します。

なんだこの差は

399 名前:デフォルトの名無しさん mailto:sage [2025/02/08(土) 08:24:47.70 ID:26aAk0ye.net]


400 名前:デフォルトの名無しさん mailto:sage [2025/02/08(土) 08:47:04.49 ID:Tj0Icuu5.net]
マルチプラットフォームで社外の全システムに対応するのもめんどくさそうだしある程度はええやろ
UNIXならパーミッションを適切に設定する文化が馴染んでるしな
100点満点じゃないと人様に叩かれる文化は新しいものが生み出せずに萎縮する



401 名前:デフォルトの名無しさん mailto:sage [2025/02/08(土) 13:21:14.91 ID:1vi9xXrm.net]
バッチファイルでも実行権限を持たせる事はできるんだから
powershell独自のやつは余計なんだよ

402 名前:デフォルトの名無しさん mailto:sage [2025/02/08(土) 15:13:57.11 ID:k/NTaFUS.net]
.ps1はエディタに紐付け

403 名前:デフォルトの名無しさん mailto:sage [2025/02/08(土) 15:51:11.00 ID:6WBbu+9W.net]
メモ帳に紐付けてます

404 名前:デフォルトの名無しさん mailto:sage [2025/02/13(木) 09:12:08.62 ID:/wbXAgvm.net]
PowerShell 7.5 GA is now available
https://devblogs.microsoft.com/powershell/announcing-powershell-7-5-ga/

405 名前:デフォルトの名無しさん [2025/02/18(火) 06:18:26.96 ID:YFjssuad.net]
Selectボタンでファイルを選択した後にOKボタンを押下しても、$filePathにファイル名が代入されていません。何が原因でしょうか?
ttps://pastebin.com/a3EwP1Lw

406 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 07:51:32.12 ID:WQjhH71Q.net]
>>405
テキストボックスには選択したファイルのパスが表示されてるのに、ってこと?

407 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 07:53:13.44 ID:hC2ChTFa.net]
scope的に$filePath揮発してたりしない?

408 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 08:02:55.62 ID:WQjhH71Q.net]
関数内で外のスコープの変数に代入する場合はスコープ指定(script: や global:)が必要だったかも

409 名前:デフォルトの名無しさん [2025/02/18(火) 19:01:09.96 ID:cVYWxauq.net]
>>406
はい、そうです。

>>407
多分$filePathが揮発しているのだと思うのですが、何故そうなるのかが正直分かっておりません。

>>408
$global:filePath = $null
$script:filePath = $null
に書き換えても結果は同じでした。orz

410 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 21:38:36.15 ID:Zhun0sKt.net]
>>409
408の内容理解してないだろ



411 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 21:45:12.87 ID:X9R6h3Dz.net]
$button_Select.Add_Clickの中の $filePath = $dialog_fileSelection.FileName を $script:filePath に変える

そもそもイベントハンドラの書き方おかしくない?
Add_Click{} じゃなくて Add_Click({}) でしょ

412 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 21:45:47.23 ID:pnZByoKT.net]
>>409
惜しいw

スコープ指定が必要なのは関数内の代入文側であって、外にある変数定義側ではないよ

413 名前:デフォルトの名無しさん [2025/02/19(水) 05:46:44.36 ID:95a5Qlah.net]
>>411
ありがとうございます!
$filePathにファイルパスが代入されるようになりました。

>>412
ありがとうございます。
そうだったんですね。勉強になりました。

414 名前:デフォルトの名無しさん [2025/03/01(土) 22:23:09.05 ID:yrcKQQ99.net]
ttps://pastebin.com/THGpvEsL

ファイルを何も選択していない状態でOKボタンを押下すると、メッセージダイアログボックス「"Please select a file."」が表示され、そのダイアログボックスのOKボタンを押下すると、処理?が終了してしまいます。
OKボタンを押下した際に、そのメッセージダイアログボックス「"Please select a file."」だけ消すにはどうしたらいいでしょうか?

415 名前:デフォルトの名無しさん mailto:sage [2025/03/02(日) 03:09:52.22 ID:9brWkkbH.net]
>>414
当たり前だけど、下記を削除するしかない

$button_OK.DialogResult = "OK"

416 名前:デフォルトの名無しさん [2025/03/02(日) 07:10:25.55 ID:yaeCdLgC.net]
>>415
ありがとうございます!

417 名前:デフォルトの名無しさん mailto:sage [2025/03/04(火) 14:43:31.10 ID:p/g0UiTR.net]
Microsoft Update changes for PowerShell 7
https://devblogs.microsoft.com/powershell/microsoft-update-changes-for-powershell-7/
「Microsoft Update」を用いた「PowerShell 7」のアップデート計画が変更
まだ「PowerShell 7.2」を利用している場合、米国時間3月14日より7.4へ更新開始
https://forest.watch.impress.co.jp/docs/news/1667304.html

418 名前:デフォルトの名無しさん [2025/03/07(金) 19:36:07.86 ID:zJfq1/au.net]
Input Folder用のボタンを押下して対象のフォルダを選択した後、OKボタンを押下すると選択した対象のInputフォルダのパスが取得されていません。
変数スコープまたは"function setSelectButton"におけるswitchが機能していないのおもうのですが、何が原因でしょうか?
Copilotに聞いてもダメでした。ボタンなどの部品は関数化しないほうがいいのでしょうか?

ttps://pastebin.com/ULTy9dM8

419 名前:デフォルトの名無しさん mailto:sage [2025/03/07(金) 23:19:13.53 ID:6K+ignj1.net]
Add_Clickに渡したスクリプトブロックが実行されるのはボタンクリック時。
その時にはもうsetSelectButtonを抜けてるから、setSelectButton実行時に渡した$folderTypeはもう見えない。

最後の手段的なglobalスコープの使用を避けて手っ取り早く解決するなら、
{〜〜〜}.GetNewClosure()でsetSelectButton実行中の変数スコープを記憶(?)したうえで
自前のクラスとかハッシュテーブル等で入出力しちゃう。とか。適当実装だとこんな。

function setSelectButton($def){
$conf = New-Object System.Windows.Forms.Button
$conf.Location = New-Object System.Drawing.Point($def.xAxis,$def.yAxis)
$conf.Size = New-Object System.Drawing.Size($def.xSize, $def.ySize)
$conf.Text = "Select"
$conf.Add_Click({
  $dialog_FolderSelection = New-Object Windows.Forms.FolderBrowserDialog
  if($dialog_FolderSelection.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK){
    $def.textBox.Text = $dialog_FolderSelection.SelectedPath
  }
}.GetNewClosure())
return $conf
}
(略)
$inputDef = [Ordered] @{xAxis = 370; yAxis = 50; xSize = 70; ySize = 20; textBox = $textBox_inputFolder;}
$outputDef = [Ordered] @{xAxis = 370; yAxis = 70; xSize = 70; ySize = 20; textBox = $textBox_outputFolder;}
# create Select button
$button_Select_inputFolder = setSelectButton $inputDef
$button_Select_outputFolder = setSelectButton $outputDef
(略)
if([String]::IsNullOrEmpty($inputDef.textBox.Text)){ # show a message dialog if no file is selected

※これで入力欄にフォルダパスをコピペする人(=私)も安心

420 名前:デフォルトの名無しさん [2025/03/08(土) 23:41:12.69 ID:zOJ1gnEL.net]
画面用のコードがひどすぎるのがPowerShell



421 名前:デフォルトの名無しさん [2025/03/09(日) 07:42:20.13 ID:RXTu5Tqn.net]
>>419
ありがとうございます!
setSelectButton実行時に渡した$folderTypeはもう見えないんですね。

422 名前:デフォルトの名無しさん mailto:sage [2025/03/11(火) 21:13:50.84 ID:LUWD7xFy.net]
Windows 11 バージョン 24H2 で netsh.exe の出力を PowerShell の変数に代入すると、非 ASCII 文字が文字化けする事象について
https://jpwinsup.github.io/blog/2025/03/11/Networking/TCPIP/NetshEncodingChange24h2/

423 名前:デフォルトの名無しさん [2025/04/26(土) 01:37:45.27 ID:1l1C1hqe.net]
ttps://pastebin.com/0HrXEMvc
のHTMLソースから特定のDIVクラス「KW」とそのクラスないを削除する方法はありましでしょうか?
以下ではきえませんでした
# HTML読み込み
$targetDir = "D:\Download\test\sample.html"
$html = Get-Content "D:\Download\test\sample.html" -Raw

# KWクラスdivを正規表現で削除
$pattern = '<div\s+class="KW">[\s\S]*?<\/div>'
$modifiedContent = $htmlContent -replace $pattern, ''

# 結果出力
$processedHtml | Out-File "D:\Download\test\pit.html" -Encoding UTF8

424 名前:デフォルトの名無しさん mailto:sage [2025/04/26(土) 21:00:04.39 ID:arwW7ZGW.net]
>>423
なんで変数の対応がめちゃくちゃなの?
正規表現で力技でやるとこんなところだが
xmlとして読み込めばnode削除でいけそうな気がする
Add-Type -AssemblyName Microsoft.VisualBasic
$html = Get-Content "D:\Download\test\sample.html" -Raw

# KWクラスdivを正規表現で削除
$pattern = [regex]"^((?:(?'open'<div[^>]*?>[\r\n]*))|(?'close-open'</div>)|(?:(?!</?div[^>]*>)[\s\S])+?)*(?(open)(?!))"
$processedHtml=$pattern.replace($html,{
$r=$args.value
$e=0
$args.groups['3'].captures|
sort index|
?{$_.index+$_.length -gt $e -and $_.value -cmatch '<div.*class="KW"'}|
%{$e=$_.index+$_.length; $r=[Microsoft.VisualBasic.Strings]::replace($r,$_.value,"",1,1)}
$r
})
$processedHtml | Out-File "D:\Download\test\pit.html" -Encoding UTF8

425 名前:デフォルトの名無しさん [2025/04/26(土) 23:51:52.55 ID:p1PcxSuO.net]
ttps://pastebin.com/0M9pbEJt
みたいなHTMLから特定のDIVクラス(kw)で定義されている要素を全部削除したいのですが、何かいい方法ありますでしょうか?

426 名前:デフォルトの名無しさん [2025/04/27(日) 15:25:40.97 ID:/1DxBHsK.net]
>>425 (>>423と同一人物だよね)
>>424に礼を言ったうえで、どの点が自身の質問意図に合ってなかったか説明して、
それからもっと具体的に追加質問した方がいいと思うよ。
ところで「xmlとして読み込めばnode削除でいけそう」は試してから言ってるの?何が合わなかったの?

427 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 16:50:54.99 ID:ce45ltSU.net]
滝川クリトリスです

428 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 20:14:14.77 ID:/O0GUF2P.net]
楽しようとして初回マッチ部分のみのreplace使ったけど
やっぱり別のが消えちゃうという一抹の不安があるのでreplaceを使うのはやめた
最終行に改行がないままにしたいのかな?
$html = Get-Content "D:\Download\test\sample.html" -Encoding UTF8 -Raw

# KWクラスdivを正規表現で削除
$pattern = [regex]"^((?:(?'open'<div[^>]*?>[\r\n]*))|(?'close-open'</div>)|(?:(?!</?div[^>]*>)[\s\S])+?)*(?(open)(?!))"
$processedHtml=$pattern.replace($html,{
$r=$args.value
$text=''
$e=0
$args.groups['3'].captures|
sort index|
?{$_.index+$_.length -gt $e -and $_.value -cmatch '<div[^>]*?class="KW"'}|
%{
$text = $text + $html.substring($e, $_.index-$e-1);
$e = $_.index + $_.length - 1
}
if($r.length -gt $e) {$text = $text + $r.substring($e, $r.length-$e)}
$text
})

[Text.Encoding]::GetEncoding("UTF-8").GetBytes($processedHtml) | Set-Content -Path "D:\Download\test\pit.html" -Encoding Byte

429 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 20:24:25.83 ID:/O0GUF2P.net]
>>426
試してませんでした
HTMLやxmlを扱うことはほぼ無いのであんまり知識が無い
で、>>423の場合では[xml]で読み込めてnode削除でうまくいくんだが
入れ子になってる場合
<div class="KW">
<span>
<div class="KW">
</div>
</span>
</div>
とかにはどうやったら簡単に対応できるのかと思ってるところ

430 名前:デフォルトの名無しさん [2025/04/27(日) 22:05:35.62 ID:aGrpQ/Rq.net]
中身全部消すのであれば内側のKWは無視していいのでは



431 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 22:11:37.95 ID:/1DxBHsK.net]
簡単には
$text = DOCTYPE宣言を除いた<html>〜</html>とかXMLとして読み込めるテキストデータ
$xml = [xml] $text
while($node=$xml.SelectSingleNode("//div[@class='KW']")){
  $null = $node.ParentNode.RemoveChild($node)
}
$xml.OuterXml | Out-File 〜〜〜
## class="aaa KW bbb"の存在とか、インデント等を完璧に維持したい、とかは考慮外。

432 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 22:22:47.91 ID:/O0GUF2P.net]
>>431
なるほど
こんな感じにしてたんだよ
$list=@()
$doc.GetElementsByTagName('div')|?{$_.class -eq "KW"}|%{$list+=$_}
$list|%{[void]$_.ParentNode.RemoveChild($_)}

433 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 22:48:33.11 ID:/O0GUF2P.net]
悩んでたのは
既に削除しちゃてて存在しない場合にエラー無視はやりたくないなあってところ

434 名前:デフォルトの名無しさん mailto:sage [2025/05/02(金) 21:45:21.05 ID:TuuGRLh6.net]
powershellって日本語に厳しい?
日本語名のフォルダに入れた時だけエラー吐く
英語名フォルダは動く
UTF-8BOMで保存してるのに文字化けエラーが治らない

435 名前:デフォルトの名無しさん [2025/05/02(金) 22:24:03.09 ID:OrgxTXnx.net]
いわゆる「マルチバイト文字」のことを「日本語」と呼ぶのはジジイ

436 名前:デフォルトの名無しさん [2025/05/03(土) 07:39:35.24 ID:ERFTsxnY.net]
UTF-8にBOMは不要

437 名前:デフォルトの名無しさん [2025/05/03(土) 17:59:32.71 ID:0tHkB26n.net]
文字コードが混在するシステムではBOMがあると便利です

438 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 18:08:41.88 ID:qBega2UP.net]
それが更に文字コードのバリエーションを増やし失敗を生むのだから本末転倒です

439 名前:デフォルトの名無しさん [2025/05/03(土) 18:08:56.03 ID:PV3Uf1QS.net]
PowerShellスクリプトは「UTF-8 with BOM」が前提

>>434
実行時(コンソール)のコードページを確認してみては?

440 名前:デフォルトの名無しさん mailto:sage [2025/05/04(日) 07:07:42.38 ID:kiovYued.net]
shift-jisにすればいいんじゃないの?



441 名前:デフォルトの名無しさん mailto:sage [2025/05/04(日) 08:23:30.18 ID:GZLENS5k.net]
適切なエンコードの選択
https://learn.microsoft.com/ja-jp/powershell/scripting/dev-cross-plat/vscode/understanding-file-encoding#choosing-the-right-encoding

442 名前:デフォルトの名無しさん mailto:sage [2025/05/04(日) 11:02:36.68 ID:Bff2jlZm.net]
文字化け対策は
 [Console]::InputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
こういうのをpowershellのプロファイルに書き込んで
powershell起動時に文字エンコードが適切な値になるようにしておく
そしてコンソールのタイトルバーを右クリして設定で適切なフォントが使用されてるか確認

443 名前:デフォルトの名無しさん mailto:sage [2025/05/09(金) 16:18:47.82 ID:LImQScat.net]
>>434 とは別人だが、レジストリ弄ったら文字化けしなくなったわ
初心者泣かせのクソ仕様だな

444 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 10:47:55.61 ID:ARU6YZDD.net]
>>443
powershellをアップデートしたらリセットされそうな予感

445 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 15:03:05.65 ID:L74jL6NI.net]
>>444
文字化けするようになったのはプロパティでコンソール画面の調整を行ってから
デフォルトの状態では文字化けしていなかったのでたぶん大丈夫…と思う

446 名前:デフォルトの名無しさん mailto:sage [2025/05/18(日) 16:44:31.56 ID:w/29XAyn.net]
$a = powercfg.exe -lastwake
$aは文字列かと思ったら文字列の配列だった…

コマンドの出力に改行が無ければ文字列、含む場合は配列とかいうヘンテコ仕様は何なんだ

447 名前:デフォルトの名無しさん mailto:sage [2025/05/18(日) 19:51:20.44 ID:xRSUEbTb.net]
この振る舞いを知らないと、$a.Lengthが時により文字列長だったり配列長だったりして、例外やバグになる。
さらには標準出力が何もないと文字列型である空文字ではなくNULL(AutomationNull)になるし。
外部プログラムの標準出力を受け手が改行ごとに分割して解釈するのはgrep等でよくあるからヘンテコ仕様とは思わないけど、
沢山あるpowershellの落とし穴の1つだと思ってる。

448 名前:デフォルトの名無しさん mailto:sage [2025/05/19(月) 10:22:41.03 ID:Z1VKFLAg.net]
$a = @(powercfg.exe -lastwake)
こんなふうにして必ず配列で返るようにするといいです

449 名前:デフォルトの名無しさん mailto:sage [2025/05/19(月) 21:43:03.14 ID:qL6NUCv5.net]
キモい記法だな

450 名前:デフォルトの名無しさん mailto:sage [2025/05/19(月) 23:54:30.60 ID:2rbfAZ+2.net]
このキモい記法ってコレクション返す関数書くと使わざるを得ないんだよな…
関数とかスクリプト最後のreturnにコレクションを渡すと勝手にバラす謎仕様

最初知らなくてDataTableのつもりがDataRowの配列で返ってきたときはびっくりした



451 名前:デフォルトの名無しさん mailto:sage [2025/05/20(火) 01:53:43.90 ID:yO05o0Kw.net]
[string[]]$aで受け取る

452 名前:デフォルトの名無しさん mailto:sage [2025/05/20(火) 12:57:58.71 ID:NKLxZTlt.net]
時刻データ(ISO 8601)が入った JSON を invoke-RestMethod で受け取る
あるいは ConvertFrom-JSON すると時刻が powershell 形式になる
データの内容を見て勝手に変換してるんか…

453 名前:デフォルトの名無しさん mailto:sage [2025/05/20(火) 14:18:35.07 ID:Xl2+DDPz.net]
>>452
勝手にDateTime型でだしてくるってこと?

454 名前:デフォルトの名無しさん mailto:sage [2025/05/20(火) 15:30:07.39 ID:NKLxZTlt.net]
>>453
こうなる

(ConvertFrom-Json('{"data":"2025-05-19T16:35:42.000Z"}')).data

2025年5月19日 16:35:42

455 名前:デフォルトの名無しさん mailto:sage [2025/05/20(火) 15:52:27.90 ID:NKLxZTlt.net]
括弧いらなかった(どうでもいい)
(ConvertFrom-Json '{"data":"2025-05-19T16:35:42.000Z"}').data

456 名前:デフォルトの名無しさん mailto:sage [2025/05/21(水) 09:54:31.02 ID:rXr/G70T.net]
ならんが(Win10, Win11, PSv5.1 -nop)

PS C:\Users\User5> (ConvertFrom-Json '{"data":"2025-05-19T16:35:42.000Z"}').data
2025-05-19T16:35:42.000Z
PS C:\Users\User5> (ConvertFrom-Json '{"data":"2025-05-19T16:35:42.000Z"}').data.GetType().FullName
System.String

457 名前:デフォルトの名無しさん mailto:sage [2025/05/21(水) 09:59:36.90 ID:2NJ41Wyd.net]
powershell5とpowershell7で動作が違うね
powershell7だと変換される

458 名前:デフォルトの名無しさん mailto:sage [2025/05/21(水) 17:10:41.92 ID:NEzFfeHM.net]
大半が5.1しか使わないから7の方が合わせろよって事

459 名前:デフォルトの名無しさん [2025/05/21(水) 18:50:19.37 ID:UAEUk5lE.net]
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/convertfrom-json?view=powershell-7.5#notes

PowerShell 6 以降、 ConvertTo-Json はタイムスタンプとして書式設定された文字列を DateTime 値に変換しようとします。

PowerShell 7.5 では、DateKind パラメーターが追加されました。これにより、タイムスタンプ文字列の変換方法を制御できます。 このパラメーターは、次の値を受け入れます。

460 名前:デフォルトの名無しさん mailto:sage [2025/06/24(火) 00:10:17.72 ID:9HpiqCeZ.net]
powershell7っていつになったらOS標準搭載されるんだろう
スクリプト配れないから困るんだよね



461 名前:デフォルトの名無しさん mailto:sage [2025/06/24(火) 11:26:30.59 ID:F3nFA9Ml.net]
配ればいいじゃん
7で動作確認してますって書いとけばいいだけ

462 名前:デフォルトの名無しさん mailto:sage [2025/06/24(火) 11:45:12.25 ID:jKpO0eO6.net]
その小学生低学年みたいな書き込み必要か?

463 名前:デフォルトの名無しさん mailto:sage [2025/06/24(火) 12:05:00.87 ID:KEAdRoBs.net]
いつになってもされないよ
Windowsのサポート期間と合わないから、標準で入れたところで結局塩漬けされて第二のPowerShell5になるだけ
そして最新のバージョンのPowerShellは今以上に誰も使わなくなる
.NET4.8のサポートが終了する頃にはとっくにPowerShellは開発終了してるだろうし、無理に移行させる理由がないんだよ

464 名前:デフォルトの名無しさん mailto:sage [2025/06/24(火) 12:24:16.18 ID:uXNyGdUq.net]
OS標準搭載とか安定が必要なのはv5を使え、v7は破壊的変更を加えながら育ててくって棲み分けになってるから標準搭載はナイだろうなあ

465 名前:デフォルトの名無しさん mailto:sage [2025/06/24(火) 18:03:39.76 ID:sjc0o4g2.net]
6以降はWindowsファーストでUNIXでも動くシェルとしてわりとユニークな立ち位置なのでそれなりに存在価値はあり、
MSスタックどっぷりな人間がAzureをはじめとしてクラウドでLinuxに触れざるを得ないときのハードルを下げるのに役立っている
Winのオンプレ鯖やPCのシェルとしては5までで終わり

466 名前:デフォルトの名無しさん mailto:sage [2025/06/24(火) 19:36:57.27 ID:ZrkIV361.net]
.NET Framework 4系(4.8.x)がWindowsに同梱され続ける限り、PowerShell 7.xが標準になることはなさそう
Unicodeの年次アプデがもう何年も反映されてなかったり、色々とキツいけど仕方ない

467 名前:デフォルトの名無しさん mailto:sage [2025/06/25(水) 00:38:29.01 ID:6PeRjodX.net]
powershellで攻めた使い方するくらいならpythonで書くよなぁ
インストール不要で動くという最大のメリットがない7系はpowershell好きにしか響かないと思う

468 名前:デフォルトの名無しさん mailto:sage [2025/06/25(水) 13:28:46.57 ID:zWuAHPd0.net]
>>467
逆にpowershell7をインストールしないメリットて何だ

469 名前:デフォルトの名無しさん mailto:sage [2025/06/25(水) 15:20:42.55 ID:TZWJXUbx.net]
Pythonをインストールしないメリットと似たようなもん

470 名前:デフォルトの名無しさん mailto:sage [2025/06/26(木) 17:27:15.49 ID:lOjfAOzg.net]
powershell 7 が読めない速さで(読めないのでキャプチャした)
”Creating implict remoting module ... [Getting command information from remote session ... 74 commands received 0s]”
とか黄色文字で一瞬表示するの止められないんだろうか
チラチラして鬱陶しい

implict remotingて何だと調べると互換性の無いモジュールを裏でpowershell 5 を起動して処理してるんだとか
Set-Location 程度でも発動する



471 名前:デフォルトの名無しさん mailto:sage [2025/06/28(土) 01:00:11.07 ID:UBYVDQZY.net]
昔数百万行の各個別コマンドをpowershellでスレッドプール実装して並列処理で捌いたことあったけどvscodeの拡張機能でのデバッグが無かったら諦めてたと思う
拡張機能のおかげで大分開発しやすくなった

472 名前:デフォルトの名無しさん [2025/06/28(土) 16:43:22.73 ID:uH6ba5rf.net]
>>471
なぜマルチスレッドの実装にこだわってマルチプロセスにしなかったのか?

スレッドのコントロールは面倒くさい。
互いのスレッドが干渉し合わないなら、別のプロセスとして実装すべき。

473 名前:デフォルトの名無しさん mailto:sage [2025/06/30(月) 14:31:10.94 ID:+52Dh5n7.net]
「Windows PowerShell 2.0」は非推奨、将来的に削除 〜Microsoftが改めて注意喚起
「Windows PowerShell 5.x」や「PowerShell 7.5」への移行を
https://forest.watch.impress.co.jp/docs/news/2026721.html

474 名前:デフォルトの名無しさん [2025/07/08(火) 11:07:44.40 ID:ub1Gvu25.net]
>>397
batの方が重大なミスしそうなんですがそれは

475 名前:デフォルトの名無しさん [2025/07/08(火) 11:08:23.57 ID:ub1Gvu25.net]
>>398
っぱpwsh on linuxよ

476 名前:デフォルトの名無しさん mailto:sage [2025/07/08(火) 11:16:15.29 ID:jxaCuQsN.net]
>>474
よく読め

477 名前:デフォルトの名無しさん [2025/07/08(火) 11:16:26.31 ID:ub1Gvu25.net]
>>466
何時までも4,5系に留まるってことは無いと思うけどね
実際2からアップグレードされてきた訳だし
.NET Frameworkとの差異は比較的大きいにせよ
>>473の件もあるしそのうちプリインされるだろCore版が
なお6か7かはたまたまだ見ぬ8かは知らんけど

478 名前:デフォルトの名無しさん [2025/07/09(水) 05:32:28.94 ID:aeqwBJS6.net]
powershellの日本語ドキュメント、chatGPTに翻訳させたらもっとマトモにならんかなあ…

479 名前:デフォルトの名無しさん [2025/07/09(水) 05:34:55.69 ID:aeqwBJS6.net]
6もしぱらくバグまみれだったし7もバグどんどん見つかっていったし、最新がプリイン入る事は無いと思うな
多分最新の1つ前の最終マイナーバージョン、すなわちもし今なら6の最終バージョンじゃね

480 名前:デフォルトの名無しさん mailto:sage [2025/07/09(水) 06:17:43.31 ID:b3V2Axv4.net]
.NET Frameworkと違って.NET5以降がOSに同梱はないでしょ
MS的に推奨かは知らんが関連するライブラリを標準モジュール含めて全部同梱配布が.NET系アプリのスタンダードになってるし今は

だったらロードさせることのないdllをOS標準で入れる意味も無いし未来永劫Powershell6以降は来ないって半分諦めてるけどね



481 名前:デフォルトの名無しさん mailto:sage [2025/07/09(水) 17:36:33.28 ID:ohpjpVt+.net]
本日はご多忙の中、協力関係者様にお集まりいただきありがとうございます。
powershellは無事5.1で完結いたしました。
powershell第一部・完
6以降はまた別のお話とさせていただきます。
こんな感じ

482 名前:デフォルトの名無しさん mailto:sage [2025/07/10(木) 00:21:06.24 ID:z96em9yx.net]
ps1の1は当時はバージョン名の想定じゃなかったっけ

483 名前:デフォルトの名無しさん mailto:sage [2025/07/10(木) 07:27:18.57 ID:qajreXxd.net]
>>482
バージョンを表しているのは間違いない
ただ言語のメジャーバージョンとファイルフォーマットの互換性を表すバージョンは必ずしも一致しないって扱いなので、もし次に拡張子が変わるときが来るなら.ps2になる
https://devblogs.microsoft.com/powershell/ctp-versioning/
Excelを例に取ると97、2007でそれぞれ内部形式が変わっていて、2007では拡張子も変わっているので、いうなれば.xlsxは.xl3に相当するイメージ(5.0以前は無視した場合)
.ps1は最初はバージョンごとに毎回数字を変えるつもりだったけどやめたって説が巷で主流だけど、コレは公式のソースが見つからなかった

484 名前:デフォルトの名無しさん mailto:sage [2025/07/10(木) 11:15:28.70 ID:DIIl0KYX.net]
microsoftは妙に互換性にこだわるから
拡張子.ps1はpowershellがどんなバージョンになっても変わらないよ
今は拡張子に「バージョンの番号が含まれてます」っていう意味すら意味をなくしていて
ただ単に「.ps1はpowershellスクリプトの拡張子です」ってだけの意味でしかないから
今さら拡張子を新しくするメリットが無い

485 名前:デフォルトの名無しさん mailto:sage [2025/07/10(木) 11:20:06.12 ID:DIIl0KYX.net]
>>484
と思ったけどバージョン5とそれ以降では互換性に問題のある事が多かったなw
そういう誤実行を防止する目的で拡張子を変えるメリットあるかなぁ

486 名前:デフォルトの名無しさん mailto:sage [2025/07/10(木) 11:55:28.72 ID:nn3AKhN3.net]
もうexeにすればいいんじゃねえかな
powershellで作ったかどうかすら判らんし

487 名前:デフォルトの名無しさん mailto:sage [2025/07/11(金) 21:41:14.58 ID:UFItDSPS.net]
https://devblogs.microsoft.com/powershell/ctp-versioning/

PowerShell Scripts continue to use “.PS1”.

We will continue to pursue this approach until there is a major change in the CLR or .NET frameworks which force us to go side-by-side. It is at that point that we’ll go from .PS1 to .PS2 . Until then we will stay with .PS1 and everything that runs today will continue to run in new releases.

488 名前:デフォルトの名無しさん mailto:sage [2025/07/12(土) 15:57:57.17 ID:KKY9VgUr.net]
記事の日付は2007年やぞ

489 名前:デフォルトの名無しさん mailto:sage [2025/07/14(月) 21:23:18.49 ID:54I3beLE.net]
PowerShell6で拡張子を変えなかった時点で
この先も.ps1のままなのはほぼ確定だよね

490 名前:デフォルトの名無しさん mailto:sage [2025/07/15(火) 01:51:30.33 ID:kwekYfOc.net]
俺たちのJeffrey Snoverはもういない、いないんだ…



491 名前:デフォルトの名無しさん mailto:sage [2025/07/15(火) 14:43:34.46 ID:iicdRBcv.net]
コマンドプロンプト使ってる人はたくさんいるけど
powershell使ってる人ここ10年で一度も見たこと無い

492 名前:デフォルトの名無しさん [2025/07/15(火) 17:26:35.63 ID:J6nh+lbb.net]
>>491
コンソール(の外観)のハナシ?

493 名前:デフォルトの名無しさん mailto:sage [2025/07/15(火) 17:58:06.00 ID:eVgbUR/v.net]
俺も、以下の1行をバッチファイル内に記述して実行する程度の事しかやってないな。

powershell.exe -command ("Write-EventLog -LogName Application -EntryType Information -Source 'WSH' -EventID 0 -Message '(%~f0)_Windows Updateの画面を起動します。'") && start "" ms-settings:windowsupdate

※注1:
Windows7以降で標準搭載されているPowerShell(バージョン2.0以降)で使用可能な「Write-EventLog」コマンドレットは、バージョン6.0以降には搭載されてない。
だがバージョン2.0~5.1いずれかとの互換性が保持されている環境(「$PSVersionTable」変数内の「PSCompatibleVersions」プロパティを参照すれば確認可能)では問題ない。

※注2:
「ms-settings:windowsupdate」コマンドはWindows10~11のみで使用可。

494 名前:デフォルトの名無しさん [2025/07/15(火) 17:58:26.26 ID:onP4ElKb.net]
Terminalに移行したら分からなくなっちゃったか

495 名前:デフォルトの名無しさん mailto:sage [2025/07/15(火) 18:07:10.16 ID:yseOir/R.net]
気軽にスクリプト実行できないから使い道がない

496 名前:デフォルトの名無しさん mailto:sage [2025/07/15(火) 20:54:02.36 ID:1cN94XmW.net]
本気で言ってるのか

497 名前:デフォルトの名無しさん mailto:sage [2025/07/15(火) 21:58:24.95 ID:ZcYliqlC.net]
弊社はIT企業じゃないし、勝手にPythonを入れたりするとたぶん怒られるので
Windowsに最初から入ってるPowerShellを便利に使ってました
たまに、起動用のbatファイルとPowerShellスクリプトをセットにして同僚に渡すこともありました

498 名前:デフォルトの名無しさん mailto:sage [2025/07/16(水) 08:58:08.06 ID:83bEnGjZ.net]
いい加減ペイント3DみたいにPowerShellのアプローチは失敗でしたと認めちゃばいいのに(´・ω・`)

499 名前:デフォルトの名無しさん mailto:sage [2025/07/16(水) 12:43:16.16 ID:09DhhKQk.net]
もうログインスクリプトにも使われてるから
Windowsの終焉まで逃げ出せないよ

500 名前:デフォルトの名無しさん mailto:sage [2025/07/16(水) 22:06:02.34 ID:5d/ixC+9.net]
PowerShellのどのアプローチが失敗なのか具体的に



501 名前:デフォルトの名無しさん mailto:sage [2025/07/16(水) 23:17:35.03 ID:7/+dohrQ.net]
起動用のbatが必要になっちゃうってのがな
PowerShell単独では使いにくい

502 名前:デフォルトの名無しさん mailto:sage [2025/07/16(水) 23:57:41.77 ID:YcDGevHy.net]
ん?どういうこと?

503 名前:デフォルトの名無しさん mailto:sage [2025/07/17(木) 00:10:22.13 ID:sGHKyXGW.net]
ダブルクリック実行できるようにするために手間がかかる

504 名前:デフォルトの名無しさん mailto:sage [2025/07/17(木) 00:22:02.88 ID:Nf2HlQRn.net]
正直言ってexecutionpolicyの初期値は大失敗だろうなぁ
結局.batか.cmd経由でダブルクリック起動できるんだからマジで無意味
ネットから落としたファイルはzoneidがあるから設定に関係なく警告でるんだし

あとcmdもPowershellもWindowsのオマケであることに価値があるのにPowershell5.1までしか同梱されてないし

505 名前:デフォルトの名無しさん [2025/07/17(木) 07:33:01.42 ID:1VTmgFuN.net]
もう直接powershell.exeに関連付けしてる

506 名前:デフォルトの名無しさん [2025/07/17(木) 08:05:58.12 ID:9jYPg0KZ.net]
>>482
それはバージョン1として普及させただけ。

いまとなってはバージョンを表してはいない。

507 名前:デフォルトの名無しさん [2025/07/17(木) 08:06:51.20 ID:9jYPg0KZ.net]
>>486
それはWindowsしか知らない人間の発想

508 名前:デフォルトの名無しさん [2025/07/17(木) 08:08:24.36 ID:9jYPg0KZ.net]
>>491
Windowsはターミナルというアプリで統合された。

PowerShellはコマンドプロンプトも含めているので、あなたが気づいていないだけ。

509 名前:デフォルトの名無しさん [2025/07/17(木) 08:09:59.60 ID:9jYPg0KZ.net]
>>495
実行形式にする必要がない。UNIX、Linuxは実行形式ファイルを嫌う。

ブラックボックス化はやめろ!

510 名前:デフォルトの名無しさん [2025/07/17(木) 08:11:35.61 ID:9jYPg0KZ.net]
>>501
バッチファイルにする必要もないよ?
バッチファイルなどでラッピングするのはWindowsの使い方のひとつでしかない。



511 名前:デフォルトの名無しさん mailto:sage [2025/07/17(木) 09:38:35.80 ID:+XuQIino.net]
>>506-510
全部元発言者を意図を読み取れてない馬鹿のレス
UNIX使いの印象を悪くするだけなのでやめてくれ

512 名前:デフォルトの名無しさん mailto:sage [2025/07/17(木) 12:08:51.21 ID:uGnrWKuf.net]
powershellは小数点以下のバージョンアップでも毎回互換性を壊す
破壊的変更を入れてくるから普及させる気無いんじゃね

513 名前:デフォルトの名無しさん mailto:sage [2025/07/17(木) 12:30:14.69 ID:l8YWhCPU.net]
実際、6以降は普及させる気無いと思うよ
Azure関連を中心にMS社内で使うために開発続けてるだけでしょ

514 名前:デフォルトの名無しさん mailto:sage [2025/07/17(木) 21:54:18.35 ID:yTEYa8cJ.net]
PowerShellが失敗作じゃないと困る人がいるのは分かった

515 名前:デフォルトの名無しさん mailto:sage [2025/07/17(木) 22:59:18.52 ID:o0/3IwZx.net]
PowerShell自体の出来はともかく、6以降は周辺環境がね
PowerShellは.NETがWindowsの中核として位置付けられていた頃に設計されており、
システムワイドにインストールされた.NETに安定的に依存できることが大前提なのよ
知っての通りその前提は完全に覆されてしまい、存在意義を失おうとしている

516 名前:デフォルトの名無しさん mailto:sage [2025/07/18(金) 01:15:27.61 ID:T97Bau37.net]
知っての通りどころか.net frameworkは今もWindowsと一蓮托生だけど
.netと.net frameworkを分けて書かないと意味不明な文章が出来上がる

517 名前:デフォルトの名無しさん mailto:sage [2025/07/18(金) 22:16:02.55 ID:avd6O0J8.net]
Windows以外で.Netで作られたアプリやサービスなんてあんの?

518 名前:デフォルトの名無しさん mailto:sage [2025/07/18(金) 22:17:51.22 ID:r2egjf+1.net]
pythonで良くない?駄目?

519 名前:デフォルトの名無しさん mailto:sage [2025/07/19(土) 02:03:44.93 ID:QndlLNYI.net]
pwsh.exe

520 名前:デフォルトの名無しさん [2025/07/19(土) 08:55:57.75 ID:jBcCcJ6x.net]
>>518
Pythonがそこまで言い言語だとは思わないので



521 名前:デフォルトの名無しさん mailto:sage [2025/07/19(土) 10:16:02.54 ID:F2LZk1nd.net]
>>517
ゲームエンジンのUnity

522 名前:デフォルトの名無しさん mailto:sage [2025/07/19(土) 19:43:58.62 ID:PVxrNHN1.net]
>>517
GitHub Actions

523 名前:デフォルトの名無しさん mailto:sage [2025/07/20(日) 10:33:30.33 ID:8UONs9WI.net]
>>515は、元はシステム全体でひとつの.NETフレームワークを使ってPowerShellをCOMに対するWSHポジにするつもりだった、という意味だろうけど
.NETフレームワーク自体最初から複数バージョンを共存させる設計になってるので、果たしてそのような構想はあったのだろうか

524 名前:デフォルトの名無しさん mailto:sage [2025/07/20(日) 11:36:14.91 ID:nDfpIeCg.net]
>>523
5以前のPowerShellはサイドバイサイドに対応していないから、使用される.NET Frameworkは結局一つだけ

525 名前:デフォルトの名無しさん mailto:sage [2025/07/24(木) 02:44:32.63 ID:uw32EQ1Q.net]
>>523
> .NETフレームワーク自体最初から複数バージョンを共存させる設計になってるので、果たしてそのような構想はあったのだろうか
.net frameworkはそんな設計じゃないぞ…

526 名前:デフォルトの名無しさん [2025/07/24(木) 18:49:30.39 ID:bvlLnJ99.net]
コマンドレットを作ったが中途半端で.NET Frameworkを呼び出せばいいということにしたが、これではPowerShellを作った意味がないとしてPowerShellを拡張していまの混乱状態に至る。

527 名前:デフォルトの名無しさん mailto:sage [2025/07/24(木) 20:21:14.09 ID:3SMUfFNx.net]
PowerShell独自の構文や機能はいらん .Net実行できる部分だけでいい
C#Scriptがほしい

528 名前:デフォルトの名無しさん mailto:sage [2025/07/24(木) 21:28:50.84 ID:Ii6lkj2E.net]
C#コードを単一ファイルでスクリプトのように書ける言語機能が「.NET 10」でテスト中
従来のプロジェクトベースへの変換も簡単
https://forest.watch.impress.co.jp/docs/news/2018094.html

529 名前:デフォルトの名無しさん mailto:sage [2025/07/24(木) 22:28:33.22 ID:qxgm8L3v.net]
powershellのAdd-Typeを使えばC#を実行出来るらしいが

530 名前:デフォルトの名無しさん [2025/07/26(土) 11:52:54.27 ID:VPjMt5X4.net]
Add-TypeのC#は、Windows API使いたい時、局所的に処理速度を上げたい時によく使う。



531 名前:デフォルトの名無しさん mailto:sage [2025/07/26(土) 19:50:25.05 ID:kldGNMpl.net]
ぜんぜん分からないんですけどAdd-TypeでC#を書くのって
インテリセンスが効かなそうで、ちょっとしんどそうなんですけど
そうでもないんですか

532 名前:デフォルトの名無しさん mailto:sage [2025/07/26(土) 20:51:36.43 ID:eh3q3MEs.net]
PowerShellで使う程度のものなら余裕でバイブコーディングでいけるからどうでもいい

533 名前:デフォルトの名無しさん mailto:sage [2025/07/26(土) 22:09:50.67 ID:kldGNMpl.net]
なるほど

534 名前:デフォルトの名無しさん mailto:sage [2025/07/27(日) 01:39:44.77 ID:sXx2dSLi.net]
もっとc#に近い記法にしてほしかったのになんでそうならなかったんだろう
配列の宣言とかセミコロンがないとか

535 名前:デフォルトの名無しさん mailto:sage [2025/07/27(日) 05:42:54.86 ID:L6p6i+Me.net]
クラスはほぼC#だけど

536 名前:デフォルトの名無しさん mailto:sage [2025/07/27(日) 08:16:33.47 ID:/sb9ajQY.net]
PowerShellは名前の通りシェルだからな
単なるスクリプト言語が欲しいだけならWSH.NET的なものを作ってる

537 名前:デフォルトの名無しさん mailto:sage [2025/07/27(日) 09:15:11.85 ID:zaK1ilRt.net]
今のMSだったらRustあたりで作ったWindows CLIで一通りの管理タスクを一貫したコマンド体系でやれるようにした上で、
スクリプトはbashでもPythonでも何でも好きなの使えみたいにしてるだろうね
今となってはPowerShellはバルマー時代の古き悪きMSを象徴する遺産の一つ

538 名前:デフォルトの名無しさん mailto:sage [2025/07/28(月) 09:16:16.29 ID:BMbzFeOA.net]
最初はbashの採用を検討してたけどWindowsには向かないって分かったからわざわざPowerShellを作ったんだが

https://x.com/jsnover/status/976904848162435072

539 名前:デフォルトの名無しさん mailto:sage [2025/07/28(月) 10:39:54.16 ID:dloezDzP.net]
>>538
その理由はファイル指向のUNIXと違ってWindowsはAPI指向だからとJeffreyは述べてるんだけど、
一方でUNIX的なシェルで扱うのに適したCLIコマンドを整備するという方向もありえて、
実際MSがPowerShellにベットする以前はWMICのようにラッパーとしてCLIコマンドを整備していく方針だったんだよ
ただ、その方向で進む限りWindows上でのコマンドラインシェルは特殊なラッパーに依存することになり、決してWindowsスタックにおける主流になり得ない
そこで当時Windowsの新たな中核技術として喧伝されていた.NETプラットフォームに乗ることで、
MS社内にサービスしつつ一気にWindowsでのコマンドラインシェルを主流に押し上げようとしたわけだね
で現状はというと、肝心の.NETが主流から外されちゃって、PowerShellは一般のアプリの一つになっちゃいました(いまここ

540 名前:デフォルトの名無しさん mailto:sage [2025/07/28(月) 11:02:51.49 ID:dloezDzP.net]
あと、現状について周辺の情勢も踏まえると、CLIを使ってAPI指向のプラットフォームを管理するスタイルはPowerShell 初期開発の当時と比較して遥かに市民権を得ているといえる
それはひとえにクラウドによるもので、現在ではクラウドプラットフォームのAPIをCLIを使って操作することは普通に行われており、しかもその多くはJeffreyの懸念に反して旧来のUNIXシェルを使用している
この現状を踏まえて今Windowsのコマンドライン管理を再考するとすれば、PowerShellのようなものが生まれる可能性は低いといえる



541 名前:デフォルトの名無しさん mailto:sage [2025/07/28(月) 17:29:52.01 ID:CQsGHQXP.net]
Windowsは(少なくともOLE〜.NET全盛期の頃のWindowsは)APIもオブジェクト指向する方向性だったので
それを操作するスクリプト言語もCOMオブジェクトや.NETオブジェクトを長期保持できなければいけない
単発で終了するCLIコマンドを揃えてもだめだろう

542 名前:デフォルトの名無しさん [2025/07/28(月) 19:14:24.95 ID:7Fge/X80.net]
おっさんエンジニアが全然使わないから無理だわ

543 名前:デフォルトの名無しさん [2025/07/28(月) 19:32:06.85 ID:K95kqw+R.net]
>>528
それだとVBScriptの二の舞

544 名前:デフォルトの名無しさん [2025/07/28(月) 19:33:30.80 ID:K95kqw+R.net]
>>534
そこがマイクロソフトの変なところ
いろんなプログラミング言語を研究して最良のものを作ったというのが当初の売り文句だった

545 名前:デフォルトの名無しさん [2025/07/28(月) 19:34:24.66 ID:K95kqw+R.net]
>>538
それはプライドが許さなかっただけ

546 名前:デフォルトの名無しさん [2025/07/28(月) 19:35:04.74 ID:K95kqw+R.net]
>>538
グーグルおじさんじゃねえか

547 名前:デフォルトの名無しさん [2025/07/28(月) 19:37:29.63 ID:K95kqw+R.net]
>>541
WindowsはWindows SDK開発がC言語でもC++でもいいというところから始まったせいで、形だけオブジェクト指向のC++が基本になってしまった。

548 名前:デフォルトの名無しさん mailto:sage [2025/07/28(月) 20:23:32.91 ID:0zFGFjxD.net]
後発だからいろんな言語を参考にできるという強みがある一方で
Windowsのシェルスクリプトという世界最大級のしがらみのもと
あらゆるステークホルダーが全方位から好き勝手なことを言い
無数の歴史的経緯を踏まえつつデザインしないといけない無理ゲーなプロジェクト
変なクセが多い言語だけど苦労が偲ばれるからあまり文句を言う気にはなれない

549 名前:デフォルトの名無しさん mailto:sage [2025/07/28(月) 20:35:24.51 ID:n+5V5/p3.net]
CとB-Shellが混じったような半端な記法

550 名前:デフォルトの名無しさん mailto:sage [2025/07/28(月) 21:11:45.32 ID:s3rviGhL.net]
今なら普通にTypeScriptになるだろうね



551 名前:デフォルトの名無しさん mailto:sage [2025/07/28(月) 21:57:11.64 ID:pEErs1kG.net]
bat埋込み技法とAdd-Typeでcsスクリプト化したった
スクリプトのくせに起動が遅いのが不満

552 名前:デフォルトの名無しさん mailto:sage [2025/07/29(火) 08:49:01.81 ID:zbO0uIbs.net]
パイプにバイナリが流せるようになったPowerShell 7.4 からは使える子になった

553 名前:デフォルトの名無しさん [2025/07/29(火) 12:01:37.45 ID:0YhddUmf.net]
VBSもなんやかんや生き続けると思ったけどOSとしてサポート終了となれば話しは別やな

554 名前:デフォルトの名無しさん mailto:sage [2025/07/29(火) 14:11:31.33 ID:/sYzcWbW.net]
>>552
パイプにバイナリ通せるつって1バイトずつbyteで送られてきても困るんだが
実際のとこどうなっとんの

555 名前:デフォルトの名無しさん [2025/07/29(火) 17:07:26.34 ID:HrDR44lc.net]
コマンド間にControl-Streamかまして調整する

556 名前:デフォルトの名無しさん mailto:sage [2025/07/29(火) 21:53:14.21 ID:J2wyXy1Z.net]
>>550
.NET対応のスクリプト言語なら静的型付けなJScript.NETが前からあるんだから
TypeScriptなんて中途半端な言語はいらない

Introducing JScript .NET
https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/scripting-articles/ms974588(v=msdn.10)

557 名前:デフォルトの名無しさん mailto:sage [2025/07/31(木) 08:21:16.74 ID:y/q8ihDv.net]
Windows PowerShell って

python3 -c 'print("hoge")'

とか

curl なんちゃら | tar かんちゃら

すらできないのに cmd.ехе にとってかわろうなんて無理筋にもほどがある
この辺だけでも PowerShell から持ってくればいいのに

558 名前:デフォルトの名無しさん mailto:sage [2025/07/31(木) 11:23:28.67 ID:+PK2lVhx.net]
もう諦めてWSLでbash使えばいい

559 名前:デフォルトの名無しさん mailto:sage [2025/07/31(木) 13:18:34.83 ID:cbQ+pPIq.net]
>>557
互換性が無いのにデフォルトのAliasでcurlがInvoke-Webrequestになってるの酷い

560 名前:デフォルトの名無しさん mailto:sage [2025/07/31(木) 22:32:58.67 ID:H5u1AeiS.net]
bashでは駄目だからわざわざPowerShellを作ったのにbash使えばいいとか意味不明すぎ



561 名前:デフォルトの名無しさん mailto:sage [2025/08/01(金) 00:05:22.62 ID:2FKaw99x.net]
curlがエイリアスって件だけは俺も擁護できない
あの罠は誰もが一度は引っかかる

562 名前:デフォルトの名無しさん mailto:sage [2025/08/01(金) 07:56:40.22 ID:z02NetRk.net]
>>560
PowerShellはWindowsの管理のために作られたもので、その用途においてbashは不向きだといっているのであり、
君が示したようなWindows管理と無関係なケースでbashより推奨されているわけではない
加えて現在ではWSLという完全なUNIX環境がWindows上でシームレスに使用できるのだから、もはやPowerShellの役割は上記の通り極めて限定的になっている
一点だけ汎用シェルとしてのPowerShellの特徴として構造化データに強いというのがあるが、それだけならNushellとかの方が遥かに使いやすいよ

563 名前:デフォルトの名無しさん mailto:sage [2025/08/01(金) 08:52:42.59 ID:TWGrPtc3.net]
>>557 の二つの例は PowerShell では問題なく実行できる
・ Windows のデフォルトコマンドラインシェルは Windows PowerShell

過去のしがらみで PowerShell をデフォルトにできないなら
Windows PowwerShell に >>557 が実行できるように機能追加するべき
Experimental feature として必要に応じで Enable できるように

とにかく今の Windows PowerShell がデフォルトってのが最悪

564 名前:デフォルトの名無しさん mailto:sage [2025/08/01(金) 09:31:11.55 ID:ciUSYvyR.net]
・一部の人は「PowerShell」と「Windows PowerShell」を分けて考えている
バックポートしろって話ならできるのでは
公式がやるかどうかはともかく

565 名前:デフォルトの名無しさん [2025/08/03(日) 20:29:44.07 ID:kVKBj15M.net]
C#と同じでWindowsだけのものはバージョンが古いものだけ

単にPowerShellと呼んでいるのは、WindowsとLinuxとMacOSで動く製品だからだ。

566 名前:デフォルトの名無しさん [2025/08/13(水) 10:09:50.25 ID:lyLUlfa6.net]
>>562
wslでpwsh使おうって方向性じゃないの?
chshするとwinとシームレスで快適だぞ
別にchshしなくてもホストのwin上リモートで繋げるしwslとの相性バツグン

567 名前:デフォルトの名無しさん mailto:sage [2025/08/13(水) 14:33:52.76 ID:BMYIv7Jv.net]
PowerShell 2.0 removal from Windows
https://support.microsoft.com/en-us/help/5065506

PowerShell 2.0 will be removed in a later release starting in August 2025 for Windows 11, version 24H2 and a September 2025 release for Windows Server 2025. All later releases for Windows 11 and Windows Server 2025 will not include PowerShell 2.0.

568 名前:デフォルトの名無しさん mailto:sage [2025/08/13(水) 16:04:08.55 ID:VzGNLP/v.net]
.NET 10では「dotnet run」で.csファイルをそのままスクリプトとして実行できるようになるっぽい(要.NET SDK)
実行時にビルトされる点はこれまでと変化ないけど、ビルド成果物が一時フォルダに吐かれる?のか、.csファイルの場所が散らかることがなくなってスクリプト的に扱えるように

実行時のオーバーヘッドは...PowerShellと大差ない模様

569 名前:デフォルトの名無しさん [2025/08/13(水) 18:30:43.34 ID:vtzVqfUP.net]
Pythonを検索してもファイルが見つかりませんとなります。
誰かどうすればいいか分かりますか?

570 名前:デフォルトの名無しさん mailto:sage [2025/08/14(木) 00:36:43.33 ID:9QEKXUa7.net]
日本語でおk



571 名前:デフォルトの名無しさん mailto:sage [2025/08/14(木) 07:06:36.79 ID:jDrEWEUc.net]
7をインストールしたけどエラー吐く時に黒背景に赤文字ってどうにかならん?くっそ見にくい

572 名前:デフォルトの名無しさん mailto:sage [2025/08/14(木) 09:27:10.03 ID:Do/BXbHP.net]
じゃあそれ夏休みの宿題な

573 名前:デフォルトの名無しさん mailto:sage [2025/08/14(木) 09:54:56.24 ID:vhNMb463.net]
$PSStyle.Formatting.Errorを変更する

about_ANSI_Terminals
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_ansi_terminals

574 名前:デフォルトの名無しさん [2025/08/14(木) 18:59:18.68 ID:eBuFE50k.net]
厨二シェル

575 名前:デフォルトの名無しさん mailto:sage [2025/08/15(金) 21:38:08.69 ID:QOcfL0u7.net]
UNIXシェルが?

576 名前:デフォルトの名無しさん mailto:sage [2025/08/17(日) 04:08:48.96 ID:TBSqwQ7N.net]
powershellってコマンドがいちいち長ったらしくて打つのダルいんだよな
shellみたいに2文字3文字の略称で何の意味かわからんコマンドも学習するのに困るけど

577 名前:デフォルトの名無しさん mailto:sage [2025/08/17(日) 05:22:57.26 ID:X86RYV3a.net]
それな

578 名前:デフォルトの名無しさん mailto:sage [2025/08/17(日) 12:37:42.26 ID:B434g2i0.net]
PowerShellのAdd-Typeでc#が書けるとよろこんだもののpowershell.exeの起動がクソ遅くcscでコンパイルする方が速い
なにやってんのコレ

579 名前:デフォルトの名無しさん [2025/08/17(日) 13:12:08.30 ID:jIhEo17k.net]
エイリアス使え

580 名前:デフォルトの名無しさん [2025/08/17(日) 13:29:34.64 ID:dA3TcCkL.net]
ps1ファイルって暗号化とまでは行かなくとも難読化くらいはできねーの?



581 名前:デフォルトの名無しさん mailto:sage [2025/08/17(日) 15:36:02.04 ID:DpVlhT9Y.net]
正規表現の検索パターン内で変数配列を使いたいが角括弧のせいで動かない
エスケープの方法を教えてほしい

行末に一致させたいとして
-Pattern "$aryr[5]$" #ng
-Pattern "$arry`[5`]$" #ng
-Pattern "$aryr\[5\]$" #ng
-Pattern ($arry[5] + "$") #ok 美しくない

582 名前:デフォルトの名無しさん mailto:sage [2025/08/17(日) 16:37:39.55 ID:CNACV2eM.net]
コレじゃダメなんだっけ?

"$($arry[5])$"

583 名前:デフォルトの名無しさん mailto:sage [2025/08/17(日) 20:58:20.47 ID:DpVlhT9Y.net]
>>582
動いた
ありがとう!

584 名前:デフォルトの名無しさん mailto:sage [2025/08/17(日) 21:28:17.56 ID:jRtquIfz.net]
>>578
DLL化してPowerShelllで読み込む

PowerShell使わずに済むならC#だけでもいいと思うけど

585 名前:デフォルトの名無しさん [2025/08/18(月) 19:07:51.36 ID:zdocw/KA.net]
これが好み
'{0}$' -f $array[5]

586 名前:デフォルトの名無しさん mailto:sage [2025/08/18(月) 20:04:20.41 ID:Pa7e5Gs8.net]
キモい記法だな

587 名前:デフォルトの名無しさん [2025/08/18(月) 21:29:02.39 ID:Ydgj3IKT.net]
-gt -ge -lt -leが覚えられないんだが
なんでこんなクソ記法にしたん?

588 名前:デフォルトの名無しさん mailto:sage [2025/08/18(月) 21:38:20.35 ID:FxxqvCUB.net]
UNIXのshの記法だよ
どうせ非互換なんだからそんなとこだけ合わせんでもいいのにな

ちな実際に使われてるbashやzshでは拡張構文があるのでそんな書き方はしなくていい

589 名前:デフォルトの名無しさん mailto:sage [2025/08/18(月) 21:49:57.69 ID:1syDG9J2.net]
gt → greater than
ge → greater than equal
lt → less than
le → less than equal
覚えられないことは無いだろ

590 名前:デフォルトの名無しさん mailto:sage [2025/08/18(月) 22:27:56.29 ID:KSZiSj98.net]
shは条件判定が外部コマンド( /usr/bin/[ )になってるからリダイレクトで使う不等号を使えなかったんかな



591 名前:デフォルトの名無しさん mailto:sage [2025/08/18(月) 23:44:31.03 ID:a/rWUBXI.net]
リダイレクト記号の > が大なりと判定されたらされたでキレる奴はたくさんいるし、文脈で判断すると難しいと不満を漏らす
gt や lt は天下のHTMLやXMLでもお馴染みだし ge も含めて ALGOL や Fortrun の時代からあるらしいから由緒ある演算子サマだ

592 名前:デフォルトの名無しさん mailto:sage [2025/08/19(火) 00:24:31.91 ID:Idn/vjK6.net]
コマンドのワンライナーでも動かないとダメだしパイプやリダイレクトとも共存しないとダメってなると文法自体が分かりづらくなるのはやむなし
c#のスクリプト版みたいに思われてるけど本来そういうものじゃない

593 名前:デフォルトの名無しさん [2025/08/19(火) 19:46:40.89 ID:0LMCTzzK.net]
>>589
やめてやれよ!

594 名前:デフォルトの名無しさん mailto:sage [2025/08/20(水) 07:51:25.99 ID:M8TEndqZ.net]
結論 コマンドプロンプトでいい

595 名前:デフォルトの名無しさん [2025/08/20(水) 09:46:38.94 ID:fQ+KVP3R.net]
コード書くにはメモ帳で十分みたいなこと言うね

596 名前:デフォルトの名無しさん mailto:sage [2025/08/20(水) 11:21:33.79 ID:wDjB3YqX.net]
老人は新しいことを覚えるよりも古い道具のハック含めていろいろ知ってるからね

597 名前:デフォルトの名無しさん mailto:sage [2025/08/20(水) 11:56:14.66 ID:Xf/p3Qkz.net]
こういう立ち止まってくれる人達がいるから相対的に新しい技術にキャッチアップする若者がひきたつんだよな
感謝です

598 名前:デフォルトの名無しさん mailto:sage [2025/08/20(水) 13:09:09.63 ID:eox7iA6W.net]
立ち止まって深掘りするのもいいけど、立ち止まるなら立ち止まる土地を間違えないことが大事
10年前からWindows Serverの設定職人として立ち止まった人とAWS職人として立ち止まった人なら、同じ苦労をしても圧倒的に後者の方が現在の価値は高いわけで

599 名前:デフォルトの名無しさん mailto:sage [2025/09/05(金) 00:20:11.88 ID:MID+NCuc.net]
同じプロジェクトで未だにスクリプトをbatで頑張るおじさんがいてキツイ

600 名前:デフォルトの名無しさん mailto:sage [2025/09/05(金) 08:27:44.85 ID:ci6Mzi4c.net]
batなんかどうせ大して複雑なことできないんだから実害はほとんどない
むしろPowerShellで何でもやろうとするおじさんのほうが潜在的には問題になりやすい
というかbatおじさんが現役で活躍できるような職場でPowerShellやってんならお前も側から見りゃ大差ないから嫌ならさっさと転職しろ



601 名前:デフォルトの名無しさん mailto:sage [2025/09/05(金) 12:35:07.92 ID:Gl7iryF4.net]
まあbatというかcmdのほうがド安定だよな
PowerShellはバージョンアップで動作が変わったりするので書いた本人がいなくなったあと困るんじゃないか

602 名前:デフォルトの名無しさん mailto:sage [2025/09/05(金) 13:24:51.33 ID:/aSZPCtW.net]
AIがあるから困らない

603 名前:デフォルトの名無しさん mailto:sage [2025/09/05(金) 15:17:33.01 ID:D2PHAyAe.net]
batおじさんワラワラ湧いてて草

604 名前:デフォルトの名無しさん mailto:sage [2025/09/05(金) 22:20:18.61 ID:Yt4Zwm1N.net]
batの弱点は特殊文字のエスケープ処理がバラバラだったりそもそもエスケープできなかったり

605 名前:デフォルトの名無しさん [2025/09/05(金) 22:29:13.57 ID:OEkVQg6g.net]
>>604
昭和50年代のパソコン向けに作ったものに文句を言うな!

606 名前:デフォルトの名無しさん [2025/09/05(金) 23:27:31.40 ID:5dsIw3pX.net]
cmdの方が優れてるよ

607 名前:デフォルトの名無しさん mailto:sage [2025/09/06(土) 04:14:29.73 ID:ynW6i2Wh.net]
batが現役なの?
ヤバw

608 名前:デフォルトの名無しさん mailto:sage [2025/09/06(土) 08:28:06.76 ID:aRqXD+gf.net]
.batと.cmdの違いがいまだに分からん
わざわざ新しい拡張子を作るなら分かりやすい構文でも導入すればよかったのに
このスレで言う事じゃないけど

609 名前:デフォルトの名無しさん mailto:sage [2025/09/06(土) 08:32:48.89 ID:4EdO9DqN.net]
>>470
今更だが、環境変数PSModulePathの並び順で旧ver用を下にしたら直った

610 名前:デフォルトの名無しさん mailto:sage [2025/09/06(土) 13:36:28.33 ID:5qDTqjrD.net]
>>594で結論出てるじゃん



611 名前:デフォルトの名無しさん [2025/09/07(日) 09:38:44.50 ID:lhUzQ3fL.net]
HTMLのリンク先がリダイレクトされる場合、自動でそのリダイレクト先のURLを取得するにはどのような方法がいいでしょうか?
$response = Invoke-WebRequest -Uri 壊れたリンク -MaximumRedirection 5 -ErrorAction SilentlyContinue
$location = $response.Headers['Location']
を試しているのですが、リダイレクト先のURLは取得できませんでした。

HTMLのリンク先は下記のとおりに取得してます。
$srcHtml = Invoke-WebRequest $url -UseBasicParsing
$html = New-Object -ComObject "HTMLFile"
$img = $html.getElementById("img").getAttribute("src")

612 名前:デフォルトの名無しさん mailto:sage [2025/09/07(日) 21:42:00.61 ID:QSfkLFkm.net]
-MaximumRedirection の値を5から0に変える

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/invoke-webrequest#-maximumredirection

-MaximumRedirection
接続が失敗するまでに、PowerShell が代替 Uniform Resource Identifier (URI) に接続をリダイレクトする回数を指定します。 既定値は 5 です。 値が 0 (ゼロ) の場合、すべてのリダイレクトが禁止されます。

613 名前:デフォルトの名無しさん [2025/09/11(木) 20:02:03.10 ID:4eE1ZwVF.net]
V7.4.12とV7.5.3が出ました。

614 名前:デフォルトの名無しさん mailto:sage [2025/09/12(金) 08:06:46.54 ID:tXxo6/Yo.net]
マジカルちんぽの持ち主になりたい

615 名前:デフォルトの名無しさん [2025/09/13(土) 09:54:11.18 ID:TD1k3ZCB.net]
俺も!

616 名前:デフォルトの名無しさん mailto:sage [2025/10/03(金) 00:50:10.33 ID:cCuQP3el.net]
transcriptってログ取るのにめちゃくちゃ便利ですね
今までログ出力ゴリゴリ書いちゃってたけどもっと早く知りたかった

617 名前:デフォルトの名無しさん [2025/10/03(金) 09:18:17.43 ID:alJoLTal.net]
bashだったらscriptコマンドで苦労しなかったのに

618 名前:デフォルトの名無しさん mailto:sage [2025/10/04(土) 15:26:39.76 ID:lUW04DD1.net]
そう思う人が何でこのスレに来るの?
一人で勝手にbashでオナニーしてればいいだけでしょ

619 名前:デフォルトの名無しさん mailto:sage [2025/10/04(土) 21:22:40.46 ID:TzWBzZl4.net]
まぁまぁそんないじめなさんな

620 名前:デフォルトの名無しさん [2025/10/12(日) 01:42:26.66 ID:DKsy7+ZR.net]
scriptとか使わんでも
たぶん標準、だったかな?
でpsのセッションはすべて保存されてるとおもうが…



621 名前:デフォルトの名無しさん [2025/10/12(日) 01:55:12.70 ID:DKsy7+ZR.net]
ごめん今$profileみたらStart-Transcriptを自動で呼ぶようにしてて、標準ではたぶんアクティベートはされてないわ
Start-Transcriptコマンドレットが>>617のいうtclのscript(b系shで代わりによく使われるヤツ)の上位互換だよ

tclのscriptやpwshのStart-Transcriptは普段から使っておくべき
ログが膨れ上がるから、無駄なタイプアウトを控える良い癖がつく、すなわち後から振り返り難くないよう、セッションのログを汚さないようにとslsやページャに頼るようになるということだ

622 名前:デフォルトの名無しさん [2025/10/12(日) 02:00:35.65 ID:DKsy7+ZR.net]
transcriptしてれば、脳死gci連打したりと恥ずかしい思いを避けるように、毎回熟慮したスマートなコマンドを構築しようとスキルアップへ向かえるわけですよ
オススメ

623 名前:デフォルトの名無しさん [2025/10/14(火) 10:05:34.66 ID:wYGHc35C.net]
困ってます。ps1をショートカットで簡単に開けなくなりました。
Powershellを楽に実行してもらうには
https://qiita.com/tomoko523/items/df8e384d32a377381ef9
↑これを参考にして、
ps1ファイルのショートカットを作って、プロパティのリンクに、
powershell -ExecutionPolicy RemoteSigned -File
という文字列を最初にをつけるというのをやりました。

powershell -ExecutionPolicy RemoteSigned -File C:\Users\User\Desktop\test.ps1
みたいな感じになる。
それでショートカットのダブルクリックでps1ファイルが開けてた。

でも、しばらくすると、新しくショートカット作ったらダブルクリックでできなくなった
というか、ショートカットのリンクに
powershell -ExecutionPolicy RemoteSigned -Fileの文字列を貼り付けたら、okを押せなくなった。
エラーメッセージが出て。
で、前に作ったやつはダブルクリックでできたので、それを開いて確認したら、
powershell -ExecutionPolicy RemoteSigned -Fileの
powershellの部分が
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
に勝手に書き換わってた。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
-ExecutionPolicy RemoteSigned -File C:\Users\User\Desktop\test.ps1 みたいな感じ

たぶん、できなくなる前後くらいに、windows powershell v5.xしかなかった環境に
powershell v7.xをインストールしたからだと思う
powershellって文字列で、自動でwindows powershell v5と連携できてたのが、
powershell v7を入れたせいで、環境変数?とかが変わったのか、よくわからないけど
自動で連携できなくなったのかな。
で、前のやつは、いつのタイミングか、powershellの文字列が、windows p.s. v5へのパスに変わってたんだと思う。
powershell の文字列で、ショートカットのリンクに文字列入れてやる方法ないでしょうか?

624 名前:623 [2025/10/14(火) 10:13:14.09 ID:mzx6xthf.net]
[Window Title]
ショートカット エラー

[Content]
受け側に指定されたパス名 'powershell' は無効です。パスとファイル名が正しいか確認してください。


エラーメッセージはこれです
でも、はじめはps1のショートカットで
リンクの文字列を追加するときは
powershell~だけで
powershellへのフルパスがなくてもok押せて、ダブルクリックで起動できてたんですよね

なにかpowershellの文字列だけで
v5やv7を自動で起動できるように設定する方法とかわからないでしょうか?

625 名前:デフォルトの名無しさん mailto:sage [2025/10/14(火) 10:46:54.11 ID:kTH6cc0X.net]
powershell7を入れるとpowershell5とは違うパスにインストールされて
powershell => v5
pwsh => v7
という具合に使い分けができる
powershellが呼べないなら
そのパスにpowershell.exeが無いのかもしれない
> 受け側に指定されたパス名 'powershell' は無効です。
というエラーがそれを裏付けてると思う
まずはv5の本体があることを確認するべき
バージョンアップした感覚で
自分で「古いv5はいらないからアンインストールしちゃお」としてるかもねw

626 名前:デフォルトの名無しさん mailto:sage [2025/10/18(土) 01:00:25.12 ID:ziLvdPa/.net]
>>623
>powershellの部分が
>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
>に勝手に書き換わってた。
これは正しい動作

現在、動くショートカットが有るならば、v5は消されていない
ps1ファイルのショートカットを作成した直後ののアイコンと
プロパティに「powershell以下略」を追記したショートカットでは
アイコンが変化する。変化してるならリンクは正しい

正常動作するショートカットのリンク先をコピーしてメモ帳に張り付けて
新しく作りたいリンク先を見比べながら書いたらどう?

627 名前:デフォルトの名無しさん [2025/10/20(月) 16:54:33.98 ID:h3FEiN7d.net]
ショートカットの文法はcmdともなんか違ってて謎が謎を呼ぶ闇

628 名前:デフォルトの名無しさん [2025/10/21(火) 05:46:20.22 ID:P/yrOpCN.net]
Z7.4.13とV7.5.4出ました。
https://github.com/PowerShell/PowerShell/releases/tag/v7.4.1
https://github.com/PowerShell/PowerShell/releases/tag/v7.5.4

629 名前:デフォルトの名無しさん [2025/10/21(火) 05:46:43.72 ID:P/yrOpCN.net]
7.4.13
https://github.com/PowerShell/PowerShell/releases/tag/v7.4.13

630 名前:デフォルトの名無しさん [2025/10/21(火) 22:17:43.72 ID:5krLOdY4.net]
ショートカットの文法ってのがコマンドラインパラメータの事を言ってるなら
別プログラムなんだからcmdと違っても普通でしょ? 何が謎なの?



631 名前:デフォルトの名無しさん mailto:sage [2025/10/27(月) 23:10:58.60 ID:JqegERzu.net]
自分も似たようなこと(カスタムURLスキーム経由で登録済みバイナリにメッセージを送信)をしてたけど、これはかなり丁寧にパッケージングされてる
GitHub - Fred-Vatin/run-yt-dlp-from-browser: Run yt-dlp commands from any browsers
https://github.com/Fred-Vatin/run-yt-dlp-from-browser

632 名前:デフォルトの名無しさん [2025/11/01(土) 07:47:46.11 ID:f9BTIAf7.net]
何もしてないけど PowerShell v7.5.4 が WindowsUpdate で降ってきた
履歴ちゃんとみたらいつまにか PowerShell って WindowsUpdate で降ってくるようになってたわ

633 名前:デフォルトの名無しさん [2025/11/02(日) 18:28:28.27 ID:SCfEy8Hn.net]
バナーで更新通知見かけてもwinget updateで更新できなくてそのうちWindows Updateで更新されてる

634 名前:デフォルトの名無しさん mailto:sage [2025/11/02(日) 22:12:18.83 ID:BJEeTNbw.net]
ターミナルでタブを移動しようとしたら消しちゃって泣きを見たのでタブを縦に並べられるtabbyを使ってる
地味に便利

635 名前:デフォルトの名無しさん [2025/11/04(火) 22:05:10.67 ID:s16lpjGn.net]
Tver のサイトで特定のドラマのページを開いたときに右上に表示されている最新話のURLを取得したいんですが知識がなくてさっぱり・・・
例えばちょっとだけエスパーの
https://tver.jp/series/srm706pd6g
で右上に表示されているエピソードを再生のURLをとりたいのですがソースを表示するとどこにもない

636 名前:デフォルトの名無しさん mailto:sage [2025/11/05(水) 00:15:01.45 ID:R4zLjHDf.net]
このスレで聞くことか?

637 名前:デフォルトの名無しさん mailto:sage [2025/11/05(水) 00:19:16.72 ID:bd8fkRgq.net]
PowerShellの質問ではないわな

638 名前:デフォルトの名無しさん mailto:sage [2025/11/05(水) 03:58:33.49 ID:79mqo3N4.net]
>>635
ソースで見ると表示されないのはJavaScriptで生成されてるからで、素のHTMLには書かれてないんだよ
ブラウザでエピソードを再生を右クリックして「検証」とか「調査」っていうメニューで確認できるよ
使っているブラウザのスレで開発ツールの使い方を教えてもらうか、ChatGPTに聞くのが分かりやすいと思う

ChatGPTにuserscriptを作ってもらうか、どうしてもPowershellでやりたいならapiを叩いたらどう?
ttps://pastebin.com/paBznTfW
これもChatGPTに教えてもらうと良いよ(↑のもChatGPTが作ってくれた)

639 名前:デフォルトの名無しさん [2025/11/05(水) 18:41:39.53 ID:VnEpJmCQ.net]
>>638
ありがとうございます!!!
もっと精進します

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