PowerShell -Part 7 (615レス)
上下前次1-新
1: 2023/11/29(水)16:07 ID:0g8RZ7sB(1) AAS
前スレ
PowerShell -Part 6
2chスレ:tech
次スレは>>980が立ててね!!
535: 07/27(日)05:42 ID:L6p6i+Me(1) AAS
クラスはほぼC#だけど
536: 07/27(日)08:16 ID:/sb9ajQY(1) AAS
PowerShellは名前の通りシェルだからな
単なるスクリプト言語が欲しいだけならWSH.NET的なものを作ってる
537: 07/27(日)09:15 ID:zaK1ilRt(1) AAS
今のMSだったらRustあたりで作ったWindows CLIで一通りの管理タスクを一貫したコマンド体系でやれるようにした上で、
スクリプトはbashでもPythonでも何でも好きなの使えみたいにしてるだろうね
今となってはPowerShellはバルマー時代の古き悪きMSを象徴する遺産の一つ
538(3): 07/28(月)09:16 ID:BMbzFeOA(1) AAS
最初はbashの採用を検討してたけどWindowsには向かないって分かったからわざわざPowerShellを作ったんだが
外部リンク:x.com
539: 07/28(月)10:39 ID:dloezDzP(1/2) AAS
>>538
その理由はファイル指向のUNIXと違ってWindowsはAPI指向だからとJeffreyは述べてるんだけど、
一方でUNIX的なシェルで扱うのに適したCLIコマンドを整備するという方向もありえて、
実際MSがPowerShellにベットする以前はWMICのようにラッパーとしてCLIコマンドを整備していく方針だったんだよ
ただ、その方向で進む限りWindows上でのコマンドラインシェルは特殊なラッパーに依存することになり、決してWindowsスタックにおける主流になり得ない
そこで当時Windowsの新たな中核技術として喧伝されていた.NETプラットフォームに乗ることで、
MS社内にサービスしつつ一気にWindowsでのコマンドラインシェルを主流に押し上げようとしたわけだね
省1
540: 07/28(月)11:02 ID:dloezDzP(2/2) AAS
あと、現状について周辺の情勢も踏まえると、CLIを使ってAPI指向のプラットフォームを管理するスタイルはPowerShell 初期開発の当時と比較して遥かに市民権を得ているといえる
それはひとえにクラウドによるもので、現在ではクラウドプラットフォームのAPIをCLIを使って操作することは普通に行われており、しかもその多くはJeffreyの懸念に反して旧来のUNIXシェルを使用している
この現状を踏まえて今Windowsのコマンドライン管理を再考するとすれば、PowerShellのようなものが生まれる可能性は低いといえる
541(1): 07/28(月)17:29 ID:CQsGHQXP(1) AAS
Windowsは(少なくともOLE〜.NET全盛期の頃のWindowsは)APIもオブジェクト指向する方向性だったので
それを操作するスクリプト言語もCOMオブジェクトや.NETオブジェクトを長期保持できなければいけない
単発で終了するCLIコマンドを揃えてもだめだろう
542: 07/28(月)19:14 ID:7Fge/X80(1) AAS
おっさんエンジニアが全然使わないから無理だわ
543: 07/28(月)19:32 ID:K95kqw+R(1/5) AAS
>>528
それだとVBScriptの二の舞
544: 07/28(月)19:33 ID:K95kqw+R(2/5) AAS
>>534
そこがマイクロソフトの変なところ
いろんなプログラミング言語を研究して最良のものを作ったというのが当初の売り文句だった
545: 07/28(月)19:34 ID:K95kqw+R(3/5) AAS
>>538
それはプライドが許さなかっただけ
546: 07/28(月)19:35 ID:K95kqw+R(4/5) AAS
>>538
グーグルおじさんじゃねえか
547: 07/28(月)19:37 ID:K95kqw+R(5/5) AAS
>>541
WindowsはWindows SDK開発がC言語でもC++でもいいというところから始まったせいで、形だけオブジェクト指向のC++が基本になってしまった。
548: 07/28(月)20:23 ID:0zFGFjxD(1) AAS
後発だからいろんな言語を参考にできるという強みがある一方で
Windowsのシェルスクリプトという世界最大級のしがらみのもと
あらゆるステークホルダーが全方位から好き勝手なことを言い
無数の歴史的経緯を踏まえつつデザインしないといけない無理ゲーなプロジェクト
変なクセが多い言語だけど苦労が偲ばれるからあまり文句を言う気にはなれない
549: 07/28(月)20:35 ID:n+5V5/p3(1) AAS
CとB-Shellが混じったような半端な記法
550(1): 07/28(月)21:11 ID:s3rviGhL(1) AAS
今なら普通にTypeScriptになるだろうね
551: 07/28(月)21:57 ID:pEErs1kG(1) AAS
bat埋込み技法とAdd-Typeでcsスクリプト化したった
スクリプトのくせに起動が遅いのが不満
552(1): 07/29(火)08:49 ID:zbO0uIbs(1) AAS
パイプにバイナリが流せるようになったPowerShell 7.4 からは使える子になった
553: 07/29(火)12:01 ID:0YhddUmf(1) AAS
VBSもなんやかんや生き続けると思ったけどOSとしてサポート終了となれば話しは別やな
554: 07/29(火)14:11 ID:/sYzcWbW(1) AAS
>>552
パイプにバイナリ通せるつって1バイトずつbyteで送られてきても困るんだが
実際のとこどうなっとんの
555: 07/29(火)17:07 ID:HrDR44lc(1) AAS
コマンド間にControl-Streamかまして調整する
556: 07/29(火)21:53 ID:J2wyXy1Z(1) AAS
>>550
.NET対応のスクリプト言語なら静的型付けなJScript.NETが前からあるんだから
TypeScriptなんて中途半端な言語はいらない
Introducing JScript .NET
外部リンク:learn.microsoft.com
557(2): 07/31(木)08:21 ID:y/q8ihDv(1) AAS
Windows PowerShell って
python3 -c 'print("hoge")'
とか
curl なんちゃら | tar かんちゃら
すらできないのに cmd.ехе にとってかわろうなんて無理筋にもほどがある
この辺だけでも PowerShell から持ってくればいいのに
558: 07/31(木)11:23 ID:+PK2lVhx(1) AAS
もう諦めてWSLでbash使えばいい
559: 07/31(木)13:18 ID:cbQ+pPIq(1) AAS
>>557
互換性が無いのにデフォルトのAliasでcurlがInvoke-Webrequestになってるの酷い
560(1): 07/31(木)22:32 ID:H5u1AeiS(1) AAS
bashでは駄目だからわざわざPowerShellを作ったのにbash使えばいいとか意味不明すぎ
561: 08/01(金)00:05 ID:2FKaw99x(1) AAS
curlがエイリアスって件だけは俺も擁護できない
あの罠は誰もが一度は引っかかる
562(1): 08/01(金)07:56 ID:z02NetRk(1) AAS
>>560
PowerShellはWindowsの管理のために作られたもので、その用途においてbashは不向きだといっているのであり、
君が示したようなWindows管理と無関係なケースでbashより推奨されているわけではない
加えて現在ではWSLという完全なUNIX環境がWindows上でシームレスに使用できるのだから、もはやPowerShellの役割は上記の通り極めて限定的になっている
一点だけ汎用シェルとしてのPowerShellの特徴として構造化データに強いというのがあるが、それだけならNushellとかの方が遥かに使いやすいよ
563: 08/01(金)08:52 ID:TWGrPtc3(1) AAS
・ >>557 の二つの例は PowerShell では問題なく実行できる
・ Windows のデフォルトコマンドラインシェルは Windows PowerShell
過去のしがらみで PowerShell をデフォルトにできないなら
Windows PowwerShell に >>557 が実行できるように機能追加するべき
Experimental feature として必要に応じで Enable できるように
とにかく今の Windows PowerShell がデフォルトってのが最悪
564: 08/01(金)09:31 ID:ciUSYvyR(1) AAS
・一部の人は「PowerShell」と「Windows PowerShell」を分けて考えている
バックポートしろって話ならできるのでは
公式がやるかどうかはともかく
565: 08/03(日)20:29 ID:kVKBj15M(1) AAS
C#と同じでWindowsだけのものはバージョンが古いものだけ
単にPowerShellと呼んでいるのは、WindowsとLinuxとMacOSで動く製品だからだ。
566: 08/13(水)10:09 ID:lyLUlfa6(1) AAS
>>562
wslでpwsh使おうって方向性じゃないの?
chshするとwinとシームレスで快適だぞ
別にchshしなくてもホストのwin上リモートで繋げるしwslとの相性バツグン
567: 08/13(水)14:33 ID:BMYIv7Jv(1) AAS
PowerShell 2.0 removal from Windows
外部リンク:support.microsoft.com
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: 08/13(水)16:04 ID:VzGNLP/v(1) AAS
.NET 10では「dotnet run」で.csファイルをそのままスクリプトとして実行できるようになるっぽい(要.NET SDK)
実行時にビルトされる点はこれまでと変化ないけど、ビルド成果物が一時フォルダに吐かれる?のか、.csファイルの場所が散らかることがなくなってスクリプト的に扱えるように
実行時のオーバーヘッドは...PowerShellと大差ない模様
569: 08/13(水)18:30 ID:vtzVqfUP(1) AAS
Pythonを検索してもファイルが見つかりませんとなります。
誰かどうすればいいか分かりますか?
570: 08/14(木)00:36 ID:9QEKXUa7(1) AAS
日本語でおk
571: 08/14(木)07:06 ID:jDrEWEUc(1) AAS
7をインストールしたけどエラー吐く時に黒背景に赤文字ってどうにかならん?くっそ見にくい
572: 08/14(木)09:27 ID:Do/BXbHP(1) AAS
じゃあそれ夏休みの宿題な
573: 08/14(木)09:54 ID:vhNMb463(1) AAS
$PSStyle.Formatting.Errorを変更する
about_ANSI_Terminals
外部リンク:learn.microsoft.com
574: 08/14(木)18:59 ID:eBuFE50k(1) AAS
厨二シェル
575: 08/15(金)21:38 ID:QOcfL0u7(1) AAS
UNIXシェルが?
576: 08/17(日)04:08 ID:TBSqwQ7N(1) AAS
powershellってコマンドがいちいち長ったらしくて打つのダルいんだよな
shellみたいに2文字3文字の略称で何の意味かわからんコマンドも学習するのに困るけど
577: 08/17(日)05:22 ID:X86RYV3a(1) AAS
それな
578(1): 08/17(日)12:37 ID:B434g2i0(1) AAS
PowerShellのAdd-Typeでc#が書けるとよろこんだもののpowershell.exeの起動がクソ遅くcscでコンパイルする方が速い
なにやってんのコレ
579: 08/17(日)13:12 ID:jIhEo17k(1) AAS
エイリアス使え
580: 08/17(日)13:29 ID:dA3TcCkL(1) AAS
ps1ファイルって暗号化とまでは行かなくとも難読化くらいはできねーの?
581: 08/17(日)15:36 ID:DpVlhT9Y(1/2) AAS
正規表現の検索パターン内で変数配列を使いたいが角括弧のせいで動かない
エスケープの方法を教えてほしい
行末に一致させたいとして
-Pattern "$aryr[5]$" #ng
-Pattern "$arry`[5`]$" #ng
-Pattern "$aryr\[5\]$" #ng
-Pattern ($arry[5] + "$") #ok 美しくない
582(1): 08/17(日)16:37 ID:CNACV2eM(1) AAS
コレじゃダメなんだっけ?
"$($arry[5])$"
583: 08/17(日)20:58 ID:DpVlhT9Y(2/2) AAS
>>582
動いた
ありがとう!
584: 08/17(日)21:28 ID:jRtquIfz(1) AAS
>>578
DLL化してPowerShelllで読み込む
PowerShell使わずに済むならC#だけでもいいと思うけど
585: 08/18(月)19:07 ID:zdocw/KA(1) AAS
これが好み
'{0}$' -f $array[5]
586: 08/18(月)20:04 ID:Pa7e5Gs8(1) AAS
キモい記法だな
587: 08/18(月)21:29 ID:Ydgj3IKT(1) AAS
-gt -ge -lt -leが覚えられないんだが
なんでこんなクソ記法にしたん?
588: 08/18(月)21:38 ID:FxxqvCUB(1) AAS
UNIXのshの記法だよ
どうせ非互換なんだからそんなとこだけ合わせんでもいいのにな
ちな実際に使われてるbashやzshでは拡張構文があるのでそんな書き方はしなくていい
589(1): 08/18(月)21:49 ID:1syDG9J2(1) AAS
gt → greater than
ge → greater than equal
lt → less than
le → less than equal
覚えられないことは無いだろ
590: 08/18(月)22:27 ID:KSZiSj98(1) AAS
shは条件判定が外部コマンド( /usr/bin/[ )になってるからリダイレクトで使う不等号を使えなかったんかな
591: 08/18(月)23:44 ID:a/rWUBXI(1) AAS
リダイレクト記号の > が大なりと判定されたらされたでキレる奴はたくさんいるし、文脈で判断すると難しいと不満を漏らす
gt や lt は天下のHTMLやXMLでもお馴染みだし ge も含めて ALGOL や Fortrun の時代からあるらしいから由緒ある演算子サマだ
592: 08/19(火)00:24 ID:Idn/vjK6(1) AAS
コマンドのワンライナーでも動かないとダメだしパイプやリダイレクトとも共存しないとダメってなると文法自体が分かりづらくなるのはやむなし
c#のスクリプト版みたいに思われてるけど本来そういうものじゃない
593: 08/19(火)19:46 ID:0LMCTzzK(1) AAS
>>589
やめてやれよ!
594(1): 08/20(水)07:51 ID:M8TEndqZ(1) AAS
結論 コマンドプロンプトでいい
595: 08/20(水)09:46 ID:fQ+KVP3R(1) AAS
コード書くにはメモ帳で十分みたいなこと言うね
596: 08/20(水)11:21 ID:wDjB3YqX(1) AAS
老人は新しいことを覚えるよりも古い道具のハック含めていろいろ知ってるからね
597: 08/20(水)11:56 ID:Xf/p3Qkz(1) AAS
こういう立ち止まってくれる人達がいるから相対的に新しい技術にキャッチアップする若者がひきたつんだよな
感謝です
598: 08/20(水)13:09 ID:eox7iA6W(1) AAS
立ち止まって深掘りするのもいいけど、立ち止まるなら立ち止まる土地を間違えないことが大事
10年前からWindows Serverの設定職人として立ち止まった人とAWS職人として立ち止まった人なら、同じ苦労をしても圧倒的に後者の方が現在の価値は高いわけで
599: 09/05(金)00:20 ID:MID+NCuc(1) AAS
同じプロジェクトで未だにスクリプトをbatで頑張るおじさんがいてキツイ
600: 09/05(金)08:27 ID:ci6Mzi4c(1) AAS
batなんかどうせ大して複雑なことできないんだから実害はほとんどない
むしろPowerShellで何でもやろうとするおじさんのほうが潜在的には問題になりやすい
というかbatおじさんが現役で活躍できるような職場でPowerShellやってんならお前も側から見りゃ大差ないから嫌ならさっさと転職しろ
601: 09/05(金)12:35 ID:Gl7iryF4(1) AAS
まあbatというかcmdのほうがド安定だよな
PowerShellはバージョンアップで動作が変わったりするので書いた本人がいなくなったあと困るんじゃないか
602: 09/05(金)13:24 ID:/aSZPCtW(1) AAS
AIがあるから困らない
603: 09/05(金)15:17 ID:D2PHAyAe(1) AAS
batおじさんワラワラ湧いてて草
604(1): 09/05(金)22:20 ID:Yt4Zwm1N(1) AAS
batの弱点は特殊文字のエスケープ処理がバラバラだったりそもそもエスケープできなかったり
605: 09/05(金)22:29 ID:OEkVQg6g(1) AAS
>>604
昭和50年代のパソコン向けに作ったものに文句を言うな!
606: 09/05(金)23:27 ID:5dsIw3pX(1) AAS
cmdの方が優れてるよ
607: 09/06(土)04:14 ID:ynW6i2Wh(1) AAS
batが現役なの?
ヤバw
608: 09/06(土)08:28 ID:aRqXD+gf(1) AAS
.batと.cmdの違いがいまだに分からん
わざわざ新しい拡張子を作るなら分かりやすい構文でも導入すればよかったのに
このスレで言う事じゃないけど
609: 09/06(土)08:32 ID:4EdO9DqN(1) AAS
>>470
今更だが、環境変数PSModulePathの並び順で旧ver用を下にしたら直った
610: 09/06(土)13:36 ID:5qDTqjrD(1) AAS
>>594で結論出てるじゃん
611: 09/07(日)09:38 ID:lhUzQ3fL(1) AAS
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"
省1
612: 09/07(日)21:42 ID:QSfkLFkm(1) AAS
-MaximumRedirection の値を5から0に変える
外部リンク:learn.microsoft.com
-MaximumRedirection
接続が失敗するまでに、PowerShell が代替 Uniform Resource Identifier (URI) に接続をリダイレクトする回数を指定します。 既定値は 5 です。 値が 0 (ゼロ) の場合、すべてのリダイレクトが禁止されます。
613: 09/11(木)20:02 ID:4eE1ZwVF(1) AAS
V7.4.12とV7.5.3が出ました。
614: 09/12(金)08:06 ID:tXxo6/Yo(1) AAS
マジカルちんぽの持ち主になりたい
615: 09/13(土)09:54 ID:TD1k3ZCB(1) AAS
俺も!
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s