PowerShell -Part 5

■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/

次スレは>>980が立ててね!!
2021/04/23(金) 10:01:56.87ID:sYoV5rep
>>172
C#だと思って使うとドツボにはまる
パイプラインをちゃんと使ってPowerShellらしく書くか、それが嫌ならインラインでC#書いたほうがマシだ
まあいずれ分かる
2021/04/23(金) 10:48:54.99ID:lAPyDVC2
>>173
bashから入ってPS勉強中の俺には
ログインシェルとしては面倒
スクリプトとしては便利
と思ってる。本気で使おうと思ってないから効率的な使い方知らんだけだと思うが、メンバ確認でgm叩くのが面倒lessがないのも辛い

この時点でかなり億劫
スクリプトはどーせvscode使うからあまり気にならないんだが…
2021/04/23(金) 11:06:13.19ID:sgIhdz3d
何でもpsでやろう、という気にはならないかな
psが向いてる用途にぴったりはまると気持ちいい
2021/04/23(金) 12:01:02.99ID:tWGuVFO6
非表示オプションにしてもコンソールが一瞬表示される問題さえ解決すればそのまま納品物にできるんだがなあ
今はPS2EXEでEXEにして納品してる
2021/04/23(金) 13:14:07.27ID:qwQTUI3N
>>175
lessはbashの一部ではなくてコマンドではあるけど気持ちは分かるかな
自分はlinux環境でもbatやfd-find、ripgrepに切り替えててwindowsでもchocolateyで導入してるんで、同じ環境になってきました
2021/04/23(金) 15:21:26.04ID:cVnO9LUt
Powershell(でなくてもいいがwindowsで)で「tail -f」したい。。
2021/04/23(金) 15:43:23.54ID:qwQTUI3N
>>179
baretail はどう?
https://baremetalsoft.com/baretail/
2021/04/23(金) 15:49:10.77ID:qwQTUI3N
あとはget-contentにwaitオプションつけるとか
baretailは大きなサイズのファイルでもサクサク開けるのでビュワーとしても使える
2021/04/23(金) 16:04:17.49ID:S2TaYi95
Unixツールのtail.exeを入れてるけど
2021/04/23(金) 17:48:18.62ID:V+AIjWKb
ちょっと昔まではバッチとの比較がほとんどだったのに
時代の流れを感じる
2021/04/23(金) 18:49:11.49ID:dmQwGyWy
Git for Windows入れたらtail.exeとかも使えるようになる
2021/04/23(金) 21:13:11.15ID:X1KZalWz
param()と書くだけで
自分で書いたスクリプトもちゃんとパラメータ補完してくれるの偉い
自分の書いたの程覚えられない()
先頭複数行コメントがget-helpできるのも便利そう、思うだけでやってないが

bash/readlineもコマンド補完に力入れてる方だけど、コマンド毎のデータは誰かが手打ちしなきゃならないし、ちょっと仕様が複雑すぎる
まあpwshもpsとcmdlet以外はそうだけど、#!/usr/bin/pwsh、param、startするだけのラッパ書けばよい
ところでwslの人はポータブルにps1書けるの?シバンを認識するかとか、認識にps1拡張子必要かとか
まだ配布できる完成度じゃないけど、折角ならポータブルなスクリプトを書きたい
2021/04/24(土) 00:07:18.71ID:zsZadCrK
>>184
そこまでするならWSL2の方がいいんでは?
git for windows SDKならpacmanでいろいろ入れられるから便利かとは思いますが
2021/04/24(土) 16:21:27.70ID:eHVgMjKX
>>176
向いてる用途ってどういうのですか?
逆に向いてないのは?
2021/04/24(土) 16:42:22.65ID:w/nYR7g5
windowsの内臓に手を突っ込むようなのが向いてる
2021/04/24(土) 17:03:59.31ID:BpMFGApW
windowsにプリインストールされてる対話環境もあるスクリプト言語っていう意味では向いてる、のかな???
2021/04/24(土) 19:56:10.43ID:t2qu3ovB
正直wikdows周りの事には使ってない唐突にcosとか呼べるので(i)pythonから移行した

オブジェクトを置き去りにするとテーブル表示になって、ピボットテーブルみたいにグリグリできるのでデータ分析にもオッケー、パイプで書けるのも素直
csv, json, xmlもそのまま読み書きできる
高度な関数や重い行列計算はさすがにOctaveとかに投げるが
学習コスト下げたい人はR, Python, Octaveで自己完結した方がいいかも
2021/04/24(土) 19:59:04.19ID:t2qu3ovB
Out-GridView(ogv)が個人的にキラーcmdlet

あとシェルとしても使える()
2021/04/24(土) 20:01:35.65ID:t2qu3ovB
偏った見方なのは承知してるけど、インタラクティブにエクセル職人的な事やりたいなら、現状で最適なソフトかなと
2021/04/24(土) 20:12:31.38ID:w/nYR7g5
PC起動したら、起動時刻と前回立ち下げ時刻をサーバのエクセルに追記させる
みたいなことを、他の言語でやろうとしたら大変
2021/04/24(土) 22:11:52.14ID:zsZadCrK
>>191
たしかにogvはお手軽に結果一覧するには超便利ですね
195187
垢版 |
2021/04/24(土) 23:12:45.35ID:eHVgMjKX
皆さんありがとうございます
2021/04/25(日) 05:08:51.91ID:Xjg3V2+s
お知恵をお貸し頂きたく…。

Excnange Online に接続して Get で出力したんですが、
波括弧{}でくくられた情報が wrap しても out-file してもどうしても省略されます。
これを全部表示する方法をどなたかご存じでしょうか…。
197196
垢版 |
2021/04/25(日) 05:11:37.83ID:Xjg3V2+s
言葉足らずでした。
{192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,...}
みたいに途中で切れてしまうアレです…。
2021/04/25(日) 05:32:42.88ID:2+KF94a+
Out-GridVewもいいけどfzfをPowerShellで使えるようにしたほうが一貫性があっていいと思うけど
2021/04/25(日) 14:29:14.34ID:Jy5Y44+Q
>>198
PSFzf
https://www.powershellgallery.com/packages/PSFzf/
2021/04/25(日) 18:02:45.39ID:Vn29MKgq
>>197
exchange onlineを触ったことが無いのでお困りの内容が正確にはわかってないのですが、対象のコレクションに対してforeach-objectするのはうまくいかないんでしょうか?
cmdletを記載してくれればもう少し分かるかも
2021/04/25(日) 18:53:01.63ID:s++hWM3P
テキストファイルの空白行を連番で
[1]
[2]
のように置換するにはどうするといいでしょうか???
2021/04/25(日) 19:15:47.03ID:byqvN0Ft
>>201
$i=1
foreach ($l in Get-Content test.txt) {
if ($l.Length -eq 0){
Write-Output ("[" + $i.ToString() + "]")
$i=$i+1
}else{
$l
}

}

こういう感じでいかがでしょうか。
あんまりうまくないと思いますが・・・。
2021/04/25(日) 19:22:08.51ID:/7sF+uPH
>>201
下手だけどワンライナーだとこんな感じ
$i=0;Get-Content test.txt|ForEach-Object {if($_ -eq ""){$i++;"[$i]"}else{$_}}
2021/04/25(日) 20:28:53.03ID:s++hWM3P
なるほど
2021/04/26(月) 01:03:37.54ID:BYmi+i0r
>>196
Exchenge Online使ってないから入力や出力したい形式が分からないけど
$var | Out-File var.txt
だと表形式で長い値は省略されて
$var | Format-Table -Wrap | Out-File var.txt
だと省略されずに保存される
2021/04/26(月) 17:17:59.89ID:iZOPqzuA
Get-Contetは何で標準入力を受け取らないんだろう?
wshはできたのにな
2021/04/26(月) 22:25:20.75ID:a3SG/c+a
開発側がそんな機能使ってないからだろう
2021/04/26(月) 23:42:37.65ID:oRZNh3Qz
>>206
イメージ湧かないんですが、どういった使い方を想定されてるんでしょう?
2021/04/26(月) 23:57:32.20ID:3GJ+33uE
たし蟹
2021/04/27(火) 00:21:38.16ID:UNWScvKY
catみたいに標準入力の結果を吐いてほしいんじゃないの
PowerShellはシェルとしての使いやすさよりも直行性を重視してるところがあるので、単に設計思想の違いだろう
2021/04/27(火) 03:10:21.87ID:SJKbfdaZ
標準入力を受け取らない理由なんてないし、実際受け取るんだけども…
get-contentという名前から、何を入力として期待しているのか考えてみなよ
2021/04/27(火) 06:30:59.80ID:Q96mKs6z
PoweShellはWSLが普及したらオワコン化するってホント?
2021/04/27(火) 08:35:24.00ID:5DBHgWrV
>>211
「内容を取得せよ」という名前なんだからcatみたいに標準入力があれば標準入力の内容も出力してくれても別におかしくはないでしょ
PowerShellのget-contentに同様の機能があれば君も普通に使ってると思うぞ
とはいえ、あれば便利だからといって何でも入れたら神コマンド化するから、そこは直行性とのバランスで取捨選択した結果なんだろう
2021/04/27(火) 09:10:46.77ID:x4iH29Y2
その反応はアドバイスに対して論理が微妙じゃね
「『内容を取得せよ』という名前なんだから標準入力から受け取ったファイル名を元に内容を取り出す仕様でも別におかしくはないでしょ」っていうのもまんま成り立つよな
二通りの仕様が考えられるときにcatと同じじゃないのはおかしいというのは先入観に引きずられすぎ
ゼロベースで考えたらGet-Contentの今の仕様は妥当だと思う

Poweshellで標準入力を標準出力にパイプしたいときにcatじゃなきゃいけない理由ってあるの?
2021/04/27(火) 10:03:00.94ID:5DBHgWrV
catは echo abc | cat x.txt - y.txt で x.txt と文字列 "abc" と y.txt を順に結合できる
同じことをpwshでやろうとすると少し頭使うだろう
pwshにはエイリアスにlsとかあったりするのに、MSがget-contentを設計する際にcatを全く意識せずゼロベースで考えたというのはさすがに普通に考えてありえない
意思を持ってcatと同じにしなかったのだろうし、別にそれが間違っているとは思わない
2021/04/27(火) 11:22:55.90ID:VpxSAxjv
あー、concatinateとして使いたいってことか
普通のcatもその使い方しないから全然気づけなかった
2021/04/27(火) 12:44:35.43ID:a/NQjOQm
なるほどね、208の質問にそう答えてくれてればスムーズに話が進んでたと思うよ
直行性という意味ではjoinなどの結合操作だね
書き方に悩むのはどっちに慣れてるかってことでしかないと思う
歴史的経緯でこんがらがった過去のシェル環境達を負の遺産ごと継承するよりも改めて再整理したいって話と、わかりやすいエイリアスを付けてあげたいってのもまた別の話
2021/04/27(火) 13:21:29.99ID:LEUYIDaT
wshはできるの意味がさっぱり分からん
2021/04/27(火) 13:45:18.43ID:P9G7ihch
>>166
単項の-join -splitあるなんて知らなかった…
2021/04/27(火) 14:42:03.79ID:y9F4OEgN
get-contentで検索文字列をテキストから取得し変数に入れているのですが、
*検索文字1*,*検索文字2*
と変数に入れると何も返ってこなくなります。検索文字列が一つだけなら問題なにのですが…
変数 = テキストファイル
get-content パス $変数
です。カンマをエスケープさせるのかアスタリスクをエスケープさせるのかこんがらがってきました…
知見を下さい…
2021/04/27(火) 14:55:56.07ID:y9F4OEgN
>>220
変数使う所はget-childitemでした。
2021/04/27(火) 15:14:13.72ID:y9F4OEgN
>>220
分かりにくいですね…
要はget-childitemで複数のファイルを検索するためにテキストファイルを使いたいって事です。
2021/04/27(火) 20:30:55.10ID:8D7txu9u
テキストの中身をカンマじゃなくて改行で区切ればそんな苦労しなくて済むぞ
あと余計なお世話だけどGet-ChildItemが手打ちで動くことは確認した?
パラメーターがちょい怪しい気がするんだが…
2021/04/27(火) 20:51:05.42ID:P9G7ihch
>>220
リテラルではカンマで渡してるから配列にしないとダメみたいね

test.txtの内容:
*.jpg,*.png

$r = gc test.txt
gci パス\* -Include ($r -split ",")

パスがカレントフォルダなら
gci ($r -split ",")
または
gci .\* -Include ($r -split ",")
または
gci * -Include ($r -split ",")
2021/04/28(水) 09:11:25.07ID:BmPpt58I
なんかテキストベースの志向してる人多くない?
テキストベースのデータは最低限配列化して扱うもんじゃないの?
2021/04/28(水) 10:37:10.61ID:mkVGlKi3
PowerShellで配列を明示的に使うのはダサいしハマりやすいよ
パイプに任せた方がいい
2021/04/28(水) 11:05:06.60ID:DwQIIr/C
他のシェルではテキストベースが普通というかむしろpwshが異端だしなぁ
手段を選ばなけりゃpwshでもInvoke-Expression使えるし
2021/04/28(水) 15:44:13.18ID:6n3amPUA
>>224
現在、環境がないので後日試してみます!ありがとうございます。
>>223
ファイルを使わずコマンド単体なら複数検索でも動くのですが…改行で動くのですか?カンマに捕らわれすぎてたかもしれません。試してみます!
2021/04/29(木) 12:08:07.23ID:1cDcYESD
略称としてはpwshが今公式に推されている?
しかしposh呼びしているMSドキュメントも多い
拡張子的にはps

pshとか収まり良いけど既にあったりして紛らわしい系?
2021/04/29(木) 12:47:36.17ID:Gvkp+FCp
推すとかじゃなくPowerShell6から実行ファイル名がpwshになった
コマンドとしてpwshが正式名称
2021/04/29(木) 12:58:06.09ID:h5Kbt4/j
pwshへのリネームはとんでもない破壊的変更なわけだけど、今後どうするんだろうね
powershellをpwshのエイリアスにしたらそれこそ阿鼻叫喚だろうからそれもなさそう
5は凍結して、そのうちWindowsにデフォルトでは入らなくてオプションで入れるようになるんだろうか
2021/04/29(木) 13:49:20.18ID:zjFXGfaT
実行ファイルの名前以前にwindows由来のモジュールが分離されてインポート必須になってるから、移行するんであればスクリプトの修正は必須ですね
2021/04/29(木) 16:15:10.36ID:BF1GEXOZ
複数バージョンの同居認めてるからその辺は問題にならないと思う
つーかログオンスクリプトで既にガンガン使ってるから5が標準で消えたら死ぬ
2021/04/29(木) 16:25:44.14ID:1cDcYESD
6はapt経由で7-preview入れたら塗りつぶされたけど、大体互換だからかな?
とりあえず俺は問題起きてないしよしとしよう
2021/04/29(木) 16:35:06.74ID:LBeD0nWX
当面はIEとEdgeみたいに行くんじゃないかな
2021/04/29(木) 21:07:38.49ID:XqZ5GoqI
やっぱ、バッチだろ?
2021/04/29(木) 21:34:01.87ID:tWFzcYm5
自分のスクリプト用はPowershell7
社内スクリプトやらはWindows Powershell(5系)
MSは互換性維持の為に古いものを限界まで残す所だから当面問題は無いと思う
ただPowershell7系はそろそろ安定して快適だしWindows標準で入れてくれて良いと思う
2021/04/29(木) 23:43:33.70ID:BF1GEXOZ
7ってWindows7でも動くんだな
2021/04/30(金) 02:48:31.39ID:YlfW6qtC
6→7では||とか&&とか?:とか演算子かなり増えたと思ったけど
6で実行すると将来の拡張に予約的なメッセージが出たはず
後方互換性はちゃっかり確保してるのね
2021/04/30(金) 03:23:30.90ID:YlfW6qtC
>>238
バックエンドの.NETが提供される限り、言語の部分に関してプラットフォームは関係ないからね
(俺は7持ってないから確認は出来ないが)

シス管機能に関わるプロバイダの部分は、VistaくらいからCim規格準拠(WMIとして)に力入れてるので、それも寄与してるかと

まだ公式リリースされてないが、 linuxでは特にUbuntuもCim準拠に力入れてる
近いうちにpwshのプラットフォーム間相互運用性の確保(pwshコードベースのメンテコスト)はかなり楽になるだろう

今はまだ統一的に見えるユーザーエクスペリエンスは、対応するAPIを繋ぎ合わせたアドホック実装されてる

アドホック実装が減ればコードベースが削減されるわけで、伝統シェルに劣るとされるファイルサイズデカい問題も解消されると期待している
2021/04/30(金) 04:34:13.88ID:wKh1zPtl
>>229
そこらの経緯はこの記事にまとまってるよ

PowerShell 6.0からPowerShellのプログラム名がpwshに変わります
https://blog.shibata.tech/entry/2017/10/19/073001

元々、略称はposh呼びが多かったみたい(容易に発音可能だし)
pshはPerl Shellと被るので避けたそうだ
2021/04/30(金) 04:37:38.21ID:wKh1zPtl
マルチプラットフォーム化の為に作り替えて、
違う系統であることが明確になるよう、名前も変えてたね
(.NETと同じく過渡的な措置だったのだろうけど)

Windows PowerShell(5系以前) → PowerShell Core(6系) → PowerShell(7系以降)
2021/04/30(金) 09:49:22.19ID:jI6ILm2+
PowerShell core(6系)の時はWindowsの内部操作系(IP確認やら)はホントまともに動かなかった
それがPowerShell7になったら殆ど動く様になった時は感動したわ、Out-GridViewも復活したし
2021/04/30(金) 11:12:11.62ID:vAph35tm
略称を作る時に母音を飛ばすのは普通なので、poshよりはpwshの方がまとも
posh1が上品とかの意味を持つ既存の英単語だから、わざとそう呼んだ
posh2として軽蔑する時に発する音、という意味もあるのでなおさら
2021/04/30(金) 11:38:19.70ID:wi8S/EBa
>>243
言語の移植はそれほど難しくないけど環境依存のコードを含むコマンドレットとかは地道にやるしかないからIP確認とかが遅れるのはしゃーない
2021/04/30(金) 15:57:16.65ID:YlfW6qtC
名前にdefine使って、偶然7時点で将来に予約メッセージを受けた
まあこんな一般的な単語をユーザーが使うべきではないというのは置いといて…
2021/04/30(金) 18:32:28.97ID:EP14bd4r
わりと1の時点から将来的に使いそうなのは予約語に入ってたよ、classとか
2021/04/30(金) 21:39:12.47ID:YlfW6qtC
>>227
WYSIWYGじゃないからなあ
掴めてない人はget-formatdataで標準の表示書式拾ってちょっと手を加えて遊ぶといいかも
2021/04/30(金) 21:42:27.17ID:YlfW6qtC
標準はちょっとverboseすぎるから、共通パラメータやメンバを無視して表示くらいの設定はしておきたい
2021/04/30(金) 23:05:03.03ID:HzZKeJse
GetTypeとか存在すると分かりきってて、定義も自明なのはする必要ないね

高度なメタプログラミングしてたら別だけれども
2021/05/13(木) 00:10:17.01ID:JmJXN960
PowerShell7のGet-ClipboardにFormatパラメータ的なものないの?
PowerShell5ではそれを指定してクリップボード内の画像だったりを取得できたと思うが
2021/05/13(木) 08:30:28.50ID:D1RFiq2C
>>251
https://github.com/PowerShell/PowerShell/pull/10340#issuecomment-546443768
2021/05/13(木) 08:47:27.44ID:GPaJZvxF
>>251
クロスプラットフォーム化でテキスト以外のサポートはなくなった
画像とか取得したければ、面倒だけど自前でSystem.Windows.Forms.Clipboard使ってやるしかないね
こういうやつ↓
https://qiita.com/saggie/items/44cb8b317fe0effa5891
2021/05/13(木) 13:12:28.84ID:RarJcXhy
>>252
>>253
ありがとう
取り敢えず>>253の方法を使うことにします
2021/05/13(木) 20:36:41.84ID:6FdqfrSd
>>252-253
この調子でバージョンアップすると機能が劣化していくのか…
変な方向に向かってるな
2021/05/13(木) 22:30:23.52ID:gFpazqk/
マチルプラットフォーム化すると各プラットフォームの最小公倍数の機能になっちゃうからね
2021/05/13(木) 23:15:59.38ID:QRC6YBG4
なら高機能化しているな
2021/05/14(金) 19:43:20.62ID:0BboAQlT
Windows PowerShellとか処理は遅いし使えない機能は多いわ文字コードはSJISがデフォルトだったりとか仕様も古くて微妙だしな
一部機能は使えなくてもPowerShell7はかなり進化してるわ
2021/05/14(金) 20:03:04.00ID:SDgEiaJx
それでもWindows PowerShellが好き
2021/05/19(水) 03:38:40.25ID:ZyjXFBY0
winのクリップボードはやけに高機能だよな
田+vで履歴、それを再編集、ピン留め等
gui環境ならコマンドヒストリの代わりにもなる、というかより便利
rtfはターミナル民的には興味ないけど、pwsh がコマンドライン上でサポートしなくても、ターミナルアプリの設定あたりで補えるのでは
(wtの設定にはある)
2021/05/19(水) 03:42:31.56ID:ZyjXFBY0
プレーンテキストといえど、所詮リッチテキストはマークアップされたプレーンテキストなのだから、適当にエスケープするように*-clipboard cmdletsをラップしてしまえば良いのでは
思い付きなんで上手くいくかはわからんが
2021/05/24(月) 18:38:56.02ID:BIWUkQ+d
TCP IPをPowerShellでさわったことある人いたらクライアントで受信する方法について教えてほしい
何から手を付けたらいいかわからん
2021/05/24(月) 18:53:53.78ID:cJIXfLgE
>>262
まずは何をしたいのか書くところからかな
TCP/IP上に独自プロコトルでデータやり取りしたいとか言うならPowerShellよりC#とかの方が楽かもしれないからPowerShellでやりたい理由も書いてくれるといいかも
2021/05/24(月) 19:40:52.20ID:CXmqjMeO
Powershellでやる場合はC#と同じく.NET FrameworkのSystem.Net.Socketsを使うことになるだろうから
他の言語でのやり方を知ってるなら下ののC#(.NET)の箇所を参考にすればいいのでは
https://www.ne.jp/asahi/hishidama/home/tech/lang/socket.html
2021/05/24(月) 20:40:25.85ID:ux+C+2yc
まずは、やりたい事を説明出来るレベルにまではなってからじゃないと無理ゲーじゃね?
2021/05/24(月) 20:41:05.87ID:ux+C+2yc
ワシの日本語なんか変だな。
人の事言えんかったわw
267デフォルトの名無しさん
垢版 |
2021/05/24(月) 20:48:57.94ID:w2G2xBi9
今帰宅した262です。
>>263
やりたいことは限りなくデフォルトのwindowsで動くTCP IPのクライアントを作ること。
お客さんに納品する機械がTCP IPでしか操作できないらしいので出来るだけ環境構築やインストール作業の必要ないクライアントを作る必要があったからなんだ。

>>264のレス見たらなんとなくわかった気がする。今の問題としては、適当に作ったサーバーに送信したものを返させてテストしてるけど数字しか帰ってこなくて困っていた。
とりま今あるスクリプト晒します。

$socket = New-Object System.Net.Sockets.TcpClient("127.0.0.1",40001)
$stream = $socket.GetStream()
$reader = New-Object System.IO.StreamReader($stream)
$writer = New-Object System.IO.StreamWriter($stream)
$writer.AutoFlush = $TRUE
$buffer = New-Object System.Byte[] 1024
while ($TRUE) {
$data = Read-Host("command?>>> ")
if ($data -eq "q") {
break
}elseif ($data) {
$writer.WriteLine($data) | Out-Null
$rawresponse = $reader.Read($buffer,0,1024)
Write-Output $rawresponse.GetType()
$response = [System.Text.Encoding]::Default.GetString($rawresponse)
Write-Output $response

}
}
$socket.Close()
2021/05/24(月) 21:18:25.42ID:cJIXfLgE
>>267
> 数字しか帰ってこなくて困っていた。
> $rawresponse = $reader.Read($buffer,0,1024)
そりゃReadメソッドの戻り値は数値(読み取った文字数)だから当たり前かと
PowerShell は文字列と数値を適宜変換しちゃったりするからC#やC++が使えるならそっちの方がデバッグが楽だと思う
2021/05/24(月) 21:35:34.82ID:w2G2xBi9
>>268
exe形式で渡せるならその2つの言語は選択してたかもなぁ
C#でGUIにしたら、パソコンわからんお客さんでも触れるかもしれんし。今回は規模小さいしPowershell使いたいかな。
2021/05/24(月) 22:01:00.03ID:uBa1LY8b
Ruby on Rails のテストでは、

HTTP のREST API なら、curl, Postman。
VSCode の拡張機能なら、REST Client, Thunder Client

REST Client では、コマンドパレットのGenerate Code Snippet で、
Ruby, PowerShell など、各言語のコードに変換してくれる!

TCP と言うのは、あまりに原始的過ぎて、よく分からない。
curlで出来るかも知れない

新し目のWindows 10 には、curl.exe も入った。
コマンドプロンプトで、where curl と入力すると、
C:\Windows\System32\curl.exe

なお、PowerShell内でcurlを使うのには注意が必要。
デフォルトで「Invoke-WebRequest」コマンドのエイリアスとして、curlが設定されている。
このため、PowerShell内でcurlコマンドを使うには、
フルパスを指定するか、curl.exeと指定する必要がある

Linux のcurlと区別するため、
漏れは、Invoke-WebRequest は、curlモドキ・なんちゃってcurlなどと呼んでいる
2021/05/24(月) 22:03:00.09ID:CXmqjMeO
C#で書いてAdd-Typeで貼り付ければpowershellとして納品できるよ
下手にC#のコードをpowershellで書き直してもややこしくなるだけと俺は思う
C#のusingとか便利な機能はpowershellじゃ使えないし
2021/05/24(月) 22:06:04.28ID:JeDrA5YU
>>271
同意
pwshから使いやすい様に多少注意して書けば問題なし
273270
垢版 |
2021/05/24(月) 22:12:06.08ID:uBa1LY8b
例えば、HTTP のREST API で、VSCode の拡張機能・REST Client で、
コマンドパレットのGenerate Code Snippet から、
PowerShell のInvoke-WebRequest に変換すると、

POST http://localhost:8888/ HTTP/1.1
content-type: application/json

[[0,0],[10,20],[10,10]]

変換後は、

$headers=@{}
$headers.Add("user-agent", "vscode-restclient")
$headers.Add("content-type", "application/json")

$response = Invoke-WebRequest -Uri 'http://localhost:8888/'
-Method POST -Headers $headers -ContentType 'application/json'
-Body '[[0,0],[10,20],[10,10]]'
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況