1 名前:デフォルトの名無しさん [2023/11/29(水) 16:07:49.46 ID:0g8RZ7sB.net] 前スレ PowerShell -Part 6 https://mevius.5ch.net/test/read.cgi/tech/1644744972/ 次スレは>>980 が立ててね!!
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社内で使うために開発続けてるだけでしょ