前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
PowerShell -Part 5
■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
510デフォルトの名無しさん
2021/08/28(土) 21:15:44.38ID:ClOfPjkS 初心者ですが、PowerShell でスクレイピングしたいので正規表現について教えてください。
$aa = Invoke-WebRequest https://www.epson.jp/products/colorio/ep982a3/spec.htm
$bb = [Text.Encoding]::GetEncoding("UTF-8").GetString( [Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($aa.Content) )
$cc = ($bb -replace '<[^>]+>','')
$dd = $cc.split("`n").trim() | ?{$_ -ne ""}
$dd | more
:
消費電力
約17W(スタンドアローンコピー時)
電源電圧
AC100V 50/60Hz
外形寸法(幅×奥行×高さ)収納時
479×356×148(mm)
外形寸法(幅×奥行×高さ)使用時
479×668×295(mm)
質量
(注)本体のみ
約8.5kg
:
電源電圧 をキーとして、
AC100V 50/60Hz
質量 をキーとして、
約8.5kg
正規表現でマッチした次の行、次の次の行を得るには どう記述すればいいでしょうか?
$aa = Invoke-WebRequest https://www.epson.jp/products/colorio/ep982a3/spec.htm
$bb = [Text.Encoding]::GetEncoding("UTF-8").GetString( [Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($aa.Content) )
$cc = ($bb -replace '<[^>]+>','')
$dd = $cc.split("`n").trim() | ?{$_ -ne ""}
$dd | more
:
消費電力
約17W(スタンドアローンコピー時)
電源電圧
AC100V 50/60Hz
外形寸法(幅×奥行×高さ)収納時
479×356×148(mm)
外形寸法(幅×奥行×高さ)使用時
479×668×295(mm)
質量
(注)本体のみ
約8.5kg
:
電源電圧 をキーとして、
AC100V 50/60Hz
質量 をキーとして、
約8.5kg
正規表現でマッチした次の行、次の次の行を得るには どう記述すればいいでしょうか?
511デフォルトの名無しさん
2021/08/28(土) 22:13:51.92ID:+Hoc5wa5 $aa = Invoke-WebRequest https://www.epson.jp/products/colorio/ep982a3/spec.htm
$bb = [Text.Encoding]::GetEncoding("UTF-8").GetString( [Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($aa.Content) )
$cc = ($bb -replace '<[^>]+>','')
if ($cc -match '電源電圧\r\n *(.*?)\r\n') {
$Matches[1]
}
if ($cc -match '質量\r\n.+?\r\n *(.*?)\r\n') {
$Matches[1]
}
$bb = [Text.Encoding]::GetEncoding("UTF-8").GetString( [Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($aa.Content) )
$cc = ($bb -replace '<[^>]+>','')
if ($cc -match '電源電圧\r\n *(.*?)\r\n') {
$Matches[1]
}
if ($cc -match '質量\r\n.+?\r\n *(.*?)\r\n') {
$Matches[1]
}
512デフォルトの名無しさん
2021/08/28(土) 22:18:47.92ID:ClOfPjkS ありがとうございました!
513デフォルトの名無しさん
2021/08/30(月) 10:04:38.64ID:AbACJw8j 正規表現マスターおるね
514デフォルトの名無しさん
2021/08/30(月) 13:35:00.90ID:VkQf119i カッコのネストに対応してないのが気になる
正規表現はテスターサイトが色々あるから、とりあえず、色々試しながら覚えるのが手っ取り早いと思う
.netの正規表現ならregex stormが老舗
昔はよくお世話になってました
正規表現はテスターサイトが色々あるから、とりあえず、色々試しながら覚えるのが手っ取り早いと思う
.netの正規表現ならregex stormが老舗
昔はよくお世話になってました
515デフォルトの名無しさん
2021/08/30(月) 20:36:24.39ID:J14B/D7S 大昔awkで書いてた時にマッチしたら次の1行読むって処理にしてたのを思い出した
516デフォルトの名無しさん
2021/08/30(月) 22:50:28.00ID:9GCOMhSC Seleniumの勉強中なのでSelenium版
$Driver = Start-SeFirefox
Enter-SeUrl 'https://www.epson.jp/products/colorio/ep982a3/spec.htm' -Driver $Driver
$Element = Find-SeElement -Driver $Driver -XPath '//th[text() = "消費電力"]/following-sibling::td'
Write-Host $Element.Text
$Element = Find-SeElement -Driver $Driver -XPath '//th[text() = "質量"]/following-sibling::td'
Write-Host $Element.Text
$Driver.Quit()
$Driver = Start-SeFirefox
Enter-SeUrl 'https://www.epson.jp/products/colorio/ep982a3/spec.htm' -Driver $Driver
$Element = Find-SeElement -Driver $Driver -XPath '//th[text() = "消費電力"]/following-sibling::td'
Write-Host $Element.Text
$Element = Find-SeElement -Driver $Driver -XPath '//th[text() = "質量"]/following-sibling::td'
Write-Host $Element.Text
$Driver.Quit()
517デフォルトの名無しさん
2021/08/31(火) 01:30:20.09ID:Ee2Wu2cn playwrightもpowershellともう少し親和性高いアセンブリ用意して欲しいところ
518デフォルトの名無しさん
2021/09/10(金) 11:07:31.69ID:4cohbW8+ ランチャーからPowerShellのスクリプトを実行したいのですが、以下のコマンドラインだと警告が出ます。
powershell -ExecutionPolicy RemoteSigned -f Y:\ps\hoge.ps1
> セキュリティ警告
> 信頼するスクリプトのみを実行してください。インターネットから入手したスクリプトは便利ですが、コンピューターに危害を及ぼ
> す可能性があります。このスクリプトを信頼する場合は、この警告メッセージが表示されないように、Unblock-File
> コマンドレットを使用して、スクリプトの実行を許可してください。Y:\ps\hoge.ps1 を実行しますか?
> [D] 実行しない(D) [R] 一度だけ実行する(R) [S] 中断(S) [?] ヘルプ (既定値は "D"):
警告を出さずに実行するにはどうすれば良いでしょうか。
Unblock-File -Path Y:\PS\hoge.ps1 は実行しています。
powershell -ExecutionPolicy RemoteSigned -f Y:\ps\hoge.ps1
> セキュリティ警告
> 信頼するスクリプトのみを実行してください。インターネットから入手したスクリプトは便利ですが、コンピューターに危害を及ぼ
> す可能性があります。このスクリプトを信頼する場合は、この警告メッセージが表示されないように、Unblock-File
> コマンドレットを使用して、スクリプトの実行を許可してください。Y:\ps\hoge.ps1 を実行しますか?
> [D] 実行しない(D) [R] 一度だけ実行する(R) [S] 中断(S) [?] ヘルプ (既定値は "D"):
警告を出さずに実行するにはどうすれば良いでしょうか。
Unblock-File -Path Y:\PS\hoge.ps1 は実行しています。
519デフォルトの名無しさん
2021/09/10(金) 19:51:15.31ID:G99+MXml RemoteSignedを別のに変える
520デフォルトの名無しさん
2021/09/10(金) 21:42:08.30ID:SltSonmt ランチャーってのが何を指してるのかよくわからんけど
HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\0\Command
でGet-ExecutionPolicyの結果がAllSignedでない時はSet-ExecutionPolicyしてるから,そのせいでは?
HKEY_CLASSES_ROOT\SystemFileAssociations\.ps1\Shell\0\Command
でGet-ExecutionPolicyの結果がAllSignedでない時はSet-ExecutionPolicyしてるから,そのせいでは?
521デフォルトの名無しさん
2021/09/11(土) 00:04:02.84ID:IblrjkB0522デフォルトの名無しさん
2021/09/12(日) 00:15:16.54ID:MdBr1Okr >>521
使えるよ
使えるよ
523デフォルトの名無しさん
2021/09/15(水) 21:42:25.76ID:iYdwhCOo tasklistの/fi “status eq not responding”を毎回入力するのがくそめんどいんだけど省略形ってない?
524デフォルトの名無しさん
2021/09/15(水) 22:11:56.20ID:VNs9ID1i525デフォルトの名無しさん
2021/09/16(木) 06:56:04.46ID:vPAKZgzi >>524
遅くなったがエイリアスで解決したわサンクス
しかしbashやzshなら便利なエイリアスが最初からたくさんあるのにPowershellって本当に使い辛いな
特にPascal CaseとKebab Caseで命名されてるCmdletのクソさが半端じゃないわ
遅くなったがエイリアスで解決したわサンクス
しかしbashやzshなら便利なエイリアスが最初からたくさんあるのにPowershellって本当に使い辛いな
特にPascal CaseとKebab Caseで命名されてるCmdletのクソさが半端じゃないわ
526デフォルトの名無しさん
2021/09/16(木) 07:26:20.86ID:1vkERD+L ならbash使えば良いじゃん
527デフォルトの名無しさん
2021/09/16(木) 08:36:27.53ID:YRR26wx4 PSスレで質問に答えてもらって感謝しつつPSをめいっぱいdisって周囲をイラつかせてから去っていくスタイル
これは天然だなw
これは天然だなw
528デフォルトの名無しさん
2021/09/16(木) 08:42:51.38ID:d2OD6VRD そもそもbashに標準でエイリアスなんて定義されてなくね?
ディストリビュータが各々初期設定用意してることはあるが
優しいdebian系で両方使ってるけど、ls, grepに--color=auto付けるのと、オプション付けた変種のll, egrep, fgrep etc.で多分一桁だと思う
pwshはコマンドレット自体はもちろん、パラメータにもエイリアスの概念があって便利よ
標準では接頭語で定義されてる、曖昧さの生じない限り受け付ける
例:-OutputVariable、-ErrorActionは-ov, -ea等、-Name/-Countは-n/-c等
なんなら-na/-nam/-counでもよい、キモいけど
そもそも毎回パラメータ渡すのが面倒なら、暗黙に渡すようデフォルト設定できるぞ(about_Parameters_Default_Value)
ディストリビュータが各々初期設定用意してることはあるが
優しいdebian系で両方使ってるけど、ls, grepに--color=auto付けるのと、オプション付けた変種のll, egrep, fgrep etc.で多分一桁だと思う
pwshはコマンドレット自体はもちろん、パラメータにもエイリアスの概念があって便利よ
標準では接頭語で定義されてる、曖昧さの生じない限り受け付ける
例:-OutputVariable、-ErrorActionは-ov, -ea等、-Name/-Countは-n/-c等
なんなら-na/-nam/-counでもよい、キモいけど
そもそも毎回パラメータ渡すのが面倒なら、暗黙に渡すようデフォルト設定できるぞ(about_Parameters_Default_Value)
529デフォルトの名無しさん
2021/09/16(木) 08:53:37.34ID:d2OD6VRD ネイティブコマンドは/?を見てシグネチャを書き写し、引数丸投げするツーライナースクリプトを用意すると便利よ
パスに置いておけば勝手に補完が効くので、保管用ディレクトリを作っておき、コマンドラインからリダイレクトで適宜追記してる
自分でオプション文字列をパースするロジックを書き、それをcompletionコマンドで登録していく方式のbash_completionより便利
パスに置いておけば勝手に補完が効くので、保管用ディレクトリを作っておき、コマンドラインからリダイレクトで適宜追記してる
自分でオプション文字列をパースするロジックを書き、それをcompletionコマンドで登録していく方式のbash_completionより便利
530デフォルトの名無しさん
2021/09/16(木) 09:31:01.40ID:d2OD6VRD あとwin限定だけど、tcsh-likeな伝統的aliasコマンドが好きならdoskey コマンドが全く等価
doskey ls=dir /ad
のように使う
名の示す通りレガシーかつunix/linuxと$profileが共有できないので、*-aliasか、シェル関数を推奨
doskey ls=dir /ad
のように使う
名の示す通りレガシーかつunix/linuxと$profileが共有できないので、*-aliasか、シェル関数を推奨
531デフォルトの名無しさん
2021/09/16(木) 10:03:53.37ID:4L00LZ3y doskeyは外部コマンドだからpwshからも使えるはずだけど、f7でのヒストリ表示とかが効かん
古いコンソールAPI使ってTUIレンダリングアップするからターミナル依存かも?
古いコンソールAPI使ってTUIレンダリングアップするからターミナル依存かも?
532デフォルトの名無しさん
2021/09/16(木) 11:11:11.19ID:80LkMEQe win/coreならヒストリが少なくとも3つあるので競合してる可能性が大
doskey /hと同様にpowershellビルトインのヒストリもF7で表示されることになってるけど、PSReadlineをロードしてれば実際はそっちに吸われる
試しにremove-moduleすればわかる、設定弄って共存も可能とは思うけど、素直にPSReadlineがいいと思うけど
doskey自体は完全にシェル非依存、mingwのsh.exeですら使える事を確認済
/execmd=sh.exe, pwsh.exeの指定を忘れずに
doskey /hと同様にpowershellビルトインのヒストリもF7で表示されることになってるけど、PSReadlineをロードしてれば実際はそっちに吸われる
試しにremove-moduleすればわかる、設定弄って共存も可能とは思うけど、素直にPSReadlineがいいと思うけど
doskey自体は完全にシェル非依存、mingwのsh.exeですら使える事を確認済
/execmd=sh.exe, pwsh.exeの指定を忘れずに
533デフォルトの名無しさん
2021/09/16(木) 11:17:45.26ID:80LkMEQe そしてPSReadlineのデフォルトではF7にヒストリ表示をバインドしてないので何も起きない
Set-PSReadlineKeyHandler -Key F7 コマンド
でバインドできるのでビルトイン、doskey、その他お好みのを
Set-PSReadlineKeyHandler -Key F7 コマンド
でバインドできるのでビルトイン、doskey、その他お好みのを
534デフォルトの名無しさん
2021/09/16(木) 11:32:09.09ID:80LkMEQe doskeyは標準コマンドだしちょっとしたコンソールアプリにラインエディット機能付けるのに未だに便利だったりする
readlineやlinenoiseは大げさ過ぎるし、rlwrapはwin環境に入ってない事が多いし
readlineやlinenoiseは大げさ過ぎるし、rlwrapはwin環境に入ってない事が多いし
535デフォルトの名無しさん
2021/09/16(木) 11:45:45.62ID:4L00LZ3y windows 11でPSCore7が標準装備になるらしいし、気兼ねなくPSReadlineでインタプリタとか書けるようになるんかね
536デフォルトの名無しさん
2021/09/16(木) 11:46:52.35ID:6/uu001h psのコンソールでVZエディタのファイラーみたいにファイル選択できるのありますか?
537デフォルトの名無しさん
2021/09/16(木) 11:59:04.94ID:4L00LZ3y 俺はvimのnetrw(標準プラグイン)使ってるな
unix/linuxなら大体入ってるし、winでもwinget install vimだけで導入が楽、同じように使えるのがよい
プロトコルもcurlを使うのでwinならscp等殆ど使える、linuxでは標準コマンドじゃないけど、まあ大体入ってるでしょう
ブックマーク、複数選択してまとめて移動、パターンで一括リネームなど地味に高機能でおすすめ
unix/linuxなら大体入ってるし、winでもwinget install vimだけで導入が楽、同じように使えるのがよい
プロトコルもcurlを使うのでwinならscp等殆ど使える、linuxでは標準コマンドじゃないけど、まあ大体入ってるでしょう
ブックマーク、複数選択してまとめて移動、パターンで一括リネームなど地味に高機能でおすすめ
538デフォルトの名無しさん
2021/09/17(金) 16:40:15.99ID:J/w/zJeW 仕事が生きがい?会社員の分際で?そろそろ認めなさい…あなたたちは単なる駒です
⇒赤羽の父ひろゆきが教える仕事の本質とやりたいことの違いが凄過ぎて感動が止まらない…
https://www.youtube.com/watch?v=zkwQOdq17dI
【ひろゆき/切り抜き】サラリーマンって資本主義の奴隷なの?
https://www.youtube.com/watch?v=Vi-dvyd5ksE&t=74s
【ひろゆき】社会人語っちゃうサラリーマンについて語りました
https://www.youtube.com/watch?v=pX7NHj_rIBg
奴隷は身近にある?日本の奴隷について【ひろゆき 切り抜き】
https://www.youtube.com/watch?v=evQjCUWIHV4
【ひろゆき】会社員なんて楽しくない?⇒楽しいしラクな仕事の仕方とは※サラリーマン必見!
https://www.youtube.com/watch?v=T95-FS8sT3w&t=390s
【ひろゆき】日本のサラリーマン制度...終わってますよwww
https://www.youtube.com/watch?v=Y-30zk2zDn0
【ひろゆき】視聴者の質問そっちのけで虚言癖アピールするひろゆき
https://www.youtube.com/watch?v=cMjk9B4J2n4
【ひろゆき/切り抜き】虚言癖ってどうやって直せばいい?
https://www.youtube.com/watch?v=5cS7vyb0tfE
⇒赤羽の父ひろゆきが教える仕事の本質とやりたいことの違いが凄過ぎて感動が止まらない…
https://www.youtube.com/watch?v=zkwQOdq17dI
【ひろゆき/切り抜き】サラリーマンって資本主義の奴隷なの?
https://www.youtube.com/watch?v=Vi-dvyd5ksE&t=74s
【ひろゆき】社会人語っちゃうサラリーマンについて語りました
https://www.youtube.com/watch?v=pX7NHj_rIBg
奴隷は身近にある?日本の奴隷について【ひろゆき 切り抜き】
https://www.youtube.com/watch?v=evQjCUWIHV4
【ひろゆき】会社員なんて楽しくない?⇒楽しいしラクな仕事の仕方とは※サラリーマン必見!
https://www.youtube.com/watch?v=T95-FS8sT3w&t=390s
【ひろゆき】日本のサラリーマン制度...終わってますよwww
https://www.youtube.com/watch?v=Y-30zk2zDn0
【ひろゆき】視聴者の質問そっちのけで虚言癖アピールするひろゆき
https://www.youtube.com/watch?v=cMjk9B4J2n4
【ひろゆき/切り抜き】虚言癖ってどうやって直せばいい?
https://www.youtube.com/watch?v=5cS7vyb0tfE
539デフォルトの名無しさん
2021/09/17(金) 18:09:35.08ID:ELLRTb6O コンソール上でコマンドレットに複数の引数をパイプラインで渡したいとき、一々
$temp = New-TemporaryFile
notepad $temp
cat $temp|渡し先
rm $temp
ってやってるんだけど、一々一時ファイル作るのが面倒です
・実行するとテキストエディタが開く
・保存して閉じたら、その内容が改行で区切られてパイプラインに渡される
・保存したファイルは勝手に消える
みたいなのをやりたいのですが何かいい方法はないでしょうか。
vimとやらでいい具体に出来そうな気がするのですが
$temp = New-TemporaryFile
notepad $temp
cat $temp|渡し先
rm $temp
ってやってるんだけど、一々一時ファイル作るのが面倒です
・実行するとテキストエディタが開く
・保存して閉じたら、その内容が改行で区切られてパイプラインに渡される
・保存したファイルは勝手に消える
みたいなのをやりたいのですが何かいい方法はないでしょうか。
vimとやらでいい具体に出来そうな気がするのですが
540デフォルトの名無しさん
2021/09/17(金) 18:37:18.96ID:h9YhuTVR 書いてる一連の処理をスクリプトにまとめるのではダメなの?
541デフォルトの名無しさん
2021/09/17(金) 18:41:27.24ID:h9YhuTVR エディタで編集したいってのが要件でないのなら、powershellのコンソールから配列作ってパイプに渡せばいいんじゃない?
542デフォルトの名無しさん
2021/09/17(金) 18:49:09.93ID:h9YhuTVR 配列だとクォート面倒だからヒアドキュメントの方がいいか
543デフォルトの名無しさん
2021/09/17(金) 18:49:56.37ID:8dXhLdl/ そもそもテキストエディタ使う時点わけわからん
普通にこんな感じでカンマ区切りで複数の値ぶち込んで一行で終わりで良くね
"値1","値2","値3","値4"|コマンドレット
普通にこんな感じでカンマ区切りで複数の値ぶち込んで一行で終わりで良くね
"値1","値2","値3","値4"|コマンドレット
544デフォルトの名無しさん
2021/09/17(金) 19:28:59.09ID:WV0Z1neM 一時ファイルを要求してるのはpwshじゃなくてnotepadの方だからなあ
formsで複数行入力できるテキストエリアでも作ったらいいんじゃないの
formsで複数行入力できるテキストエリアでも作ったらいいんじゃないの
545デフォルトの名無しさん
2021/09/17(金) 19:36:59.65ID:ELLRTb6O すいません
$temp = New-TemporaryFile
notepad $temp
部分をbegin、
cat $temp
部分をproccess、
rm $temp
部分をend、
にそれぞれ設定したコマンドレット作ったら解決しました。
>>543
スクリプトならともかく、毎回"a","b",ってやるの大変過ぎません・・・?
テキストエディタで書けばコピペやちょっとした編集も出来るし便利だと思ったんですが
$temp = New-TemporaryFile
notepad $temp
部分をbegin、
cat $temp
部分をproccess、
rm $temp
部分をend、
にそれぞれ設定したコマンドレット作ったら解決しました。
>>543
スクリプトならともかく、毎回"a","b",ってやるの大変過ぎません・・・?
テキストエディタで書けばコピペやちょっとした編集も出来るし便利だと思ったんですが
546デフォルトの名無しさん
2021/09/17(金) 20:19:24.87ID:HNxzcP2W grep使えるテキストエディタなら一瞬だし
547デフォルトの名無しさん
2021/09/17(金) 20:43:16.94ID:ELLRTb6O >>546
詳しくお願いします
詳しくお願いします
548デフォルトの名無しさん
2021/09/17(金) 23:17:28.58ID:f6z6dViq 542も書いてるけどヒアドキュメントでいいのでは?
PS C:\> -split @"
>> りんご
>> ゴリラ
>> ラッパ
>> パンツ
>> "@ |% { $_ * $_.length }
りんごりんごりんご
ゴリラゴリラゴリラ
ラッパラッパラッパ
パンツパンツパンツ
普通にコピペもできるし
PS C:\> -split @"
>> りんご
>> ゴリラ
>> ラッパ
>> パンツ
>> "@ |% { $_ * $_.length }
りんごりんごりんご
ゴリラゴリラゴリラ
ラッパラッパラッパ
パンツパンツパンツ
普通にコピペもできるし
549デフォルトの名無しさん
2021/09/19(日) 06:06:12.94ID:WE3+ZJYa550デフォルトの名無しさん
2021/09/19(日) 06:28:42.01ID:WE3+ZJYa >>318
3.10はまだrc
3.10はまだrc
551デフォルトの名無しさん
2021/09/19(日) 18:29:20.62ID:8fpQIVxp >>535
Windows11いれてみたけどPowershellは5.1で、pwshコマンドはないな…。
Windows11いれてみたけどPowershellは5.1で、pwshコマンドはないな…。
552デフォルトの名無しさん
2021/09/21(火) 10:41:16.50ID:IpiCAawJ >>1
>>301のリンク先にPowerShell のサポートライフサイクル書いてあるよ
>PowerShell Coreサポート終了日
7.1 2022 年 2 月中旬 (予定)
7.0 2022 年 12 月 3 日
6.2 2020 年 9 月 4 日
6.1 2019 年 9 月 28 日
6.0 2019 年 2 月 13 日
このドキュメントでは、PowerShell Core のサポートについて説明します。Windows PowerShell (1.0 から 5.1) は、Windows OS のコンポーネントです。 コンポーネントは、親製品または親プラットフォームと同様のサポートを受けます。
PowerShell 7.1 (現在) .NET 5.0 (最新) 上に構築されています。
PowerShell 7.0 (LTS) .NET Core 3.1 (LTS) 上に構築されています。
PowerShell 5.1 Windows 10 Anniversary Update および Windows Server 2016 でリリースされました。
PowerShell 4.0 Windows 8.1 および Windows Server 2012 R2 に統合されています。 Windows 7 SP1、Windows Server 2008 R2 SP1、Windows Server 2012 にインストールできます。
>>301のリンク先にPowerShell のサポートライフサイクル書いてあるよ
>PowerShell Coreサポート終了日
7.1 2022 年 2 月中旬 (予定)
7.0 2022 年 12 月 3 日
6.2 2020 年 9 月 4 日
6.1 2019 年 9 月 28 日
6.0 2019 年 2 月 13 日
このドキュメントでは、PowerShell Core のサポートについて説明します。Windows PowerShell (1.0 から 5.1) は、Windows OS のコンポーネントです。 コンポーネントは、親製品または親プラットフォームと同様のサポートを受けます。
PowerShell 7.1 (現在) .NET 5.0 (最新) 上に構築されています。
PowerShell 7.0 (LTS) .NET Core 3.1 (LTS) 上に構築されています。
PowerShell 5.1 Windows 10 Anniversary Update および Windows Server 2016 でリリースされました。
PowerShell 4.0 Windows 8.1 および Windows Server 2012 R2 に統合されています。 Windows 7 SP1、Windows Server 2008 R2 SP1、Windows Server 2012 にインストールできます。
553デフォルトの名無しさん
2021/09/21(火) 11:09:28.80ID:nttPkmcf .net (core) に紐付くpwshとOSに紐付くpowershellか
11がpwshのみになったら、結構なインパクトだね
11がpwshのみになったら、結構なインパクトだね
554デフォルトの名無しさん
2021/09/21(火) 11:22:39.67ID:Da3XTUmu まさかpowershellがこんなに早く泥沼レガシー化するとはな
まあPowerShellが成功したことの裏返しではあるが
まあPowerShellが成功したことの裏返しではあるが
555デフォルトの名無しさん
2021/09/21(火) 11:32:16.53ID:nttPkmcf まだ、pwsh一本になるかわからんのでは?
まぁ、自分はpwshになっても困らんけど
まぁ、自分はpwshになっても困らんけど
556デフォルトの名無しさん
2021/09/21(火) 13:22:46.25ID:/2oLRKWG >>553
powershellにどっぷり依存したスクリプトは死亡か
powershellにどっぷり依存したスクリプトは死亡か
557デフォルトの名無しさん
2021/09/21(火) 18:35:29.10ID:M4Sh91tB 2年弱で開発会社から使うなと言われる言語/バージョンなんて使えねぇ。
ソフト開発中に期限切れになる。
ソフト開発中に期限切れになる。
558デフォルトの名無しさん
2021/09/21(火) 19:45:57.83ID:+NRxBuUH Windows PowerShell 5.1使っておけばいいんじゃね
559デフォルトの名無しさん
2021/09/22(水) 08:31:43.75ID:FN2sBDTe >>557
それじゃあJavaが糞みたいじゃないか
https://www.infoq.com/jp/news/2021/08/java-17-glass/
多くのチームが6か月サイクルのメジャーリリース番号と一致するようにJavaバージョンをアップグレードしているという証拠はない。
New Relicの顧客ベース(数千万の本番JVMを含む)のデータによると、LTS以外のJavaバージョンが1.5%を超える市場シェアに至ったことは一度もない。
LTS以外のJavaバージョンのほとんどは、リリースから数か月以内に、0〜0.5%に低下する。
むしろ、市場全体としてはJava 8と11を使用し続けている。これには、Oracleから離れ、8と11の増分更新の提供を別のベンダーに依存している場合も含まれる。
現在、2つのLTSバージョンが市場シェアの二分しつつある(統計的なノイズレベルを下回る非LTSバージョンもある)。
これは、Java 8が普及した速さと比較して、Java 11の普及がはるかに遅いことを表している(3年で約50%の市場シェア)。
それじゃあJavaが糞みたいじゃないか
https://www.infoq.com/jp/news/2021/08/java-17-glass/
多くのチームが6か月サイクルのメジャーリリース番号と一致するようにJavaバージョンをアップグレードしているという証拠はない。
New Relicの顧客ベース(数千万の本番JVMを含む)のデータによると、LTS以外のJavaバージョンが1.5%を超える市場シェアに至ったことは一度もない。
LTS以外のJavaバージョンのほとんどは、リリースから数か月以内に、0〜0.5%に低下する。
むしろ、市場全体としてはJava 8と11を使用し続けている。これには、Oracleから離れ、8と11の増分更新の提供を別のベンダーに依存している場合も含まれる。
現在、2つのLTSバージョンが市場シェアの二分しつつある(統計的なノイズレベルを下回る非LTSバージョンもある)。
これは、Java 8が普及した速さと比較して、Java 11の普及がはるかに遅いことを表している(3年で約50%の市場シェア)。
560デフォルトの名無しさん
2021/09/22(水) 09:19:00.25ID:tSQB3N1g561デフォルトの名無しさん
2021/09/22(水) 20:05:39.38ID:3C9wtQqc みずほ銀は Java 変えるの不可能なんじゃね
562デフォルトの名無しさん
2021/09/23(木) 05:09:50.35ID:zN5TM8vm そりゃまだCOBOLメインテナンスしてるとこもある
563デフォルトの名無しさん
2021/09/23(木) 15:45:46.23ID:emRd8wBh 短期のリリースサイクルが困るならLTSのみ使って、インターネット接続がない特殊な用途なら、別途、MSと相談かwindows使わないことを検討したほうがいい
まぁ、ちょっと前だと新生銀行のATMとか、最近でもデジタルサイネージで再起動促すダイアログでて止まってたりするの見かけたけど
普通の使い方ならバージョン固定にしてセキュリテイパッチあてない運用は取り得無いから、ガンガン更新するしかないよね
まぁ、ちょっと前だと新生銀行のATMとか、最近でもデジタルサイネージで再起動促すダイアログでて止まってたりするの見かけたけど
普通の使い方ならバージョン固定にしてセキュリテイパッチあてない運用は取り得無いから、ガンガン更新するしかないよね
564デフォルトの名無しさん
2021/09/23(木) 19:44:57.25ID:vr6lr97h ISO 規格になってる言語は安心だな。
古い規格で作成したシステムも、いつまでも正々堂々と使える。
使うなとは誰も言わないし、ライセンス料も請求されないし、訴訟も起こされない。 後方互換もばっちり。
Java は 1CPU あたり年60万円請求される。 マルチCPU、クラスタシステム、マルチサーバならサーバ側だけでも途方もない金額になるし、
それに加えクライアントPCにも使用者指名ごとに料金が発生する。
古い規格で作成したシステムも、いつまでも正々堂々と使える。
使うなとは誰も言わないし、ライセンス料も請求されないし、訴訟も起こされない。 後方互換もばっちり。
Java は 1CPU あたり年60万円請求される。 マルチCPU、クラスタシステム、マルチサーバならサーバ側だけでも途方もない金額になるし、
それに加えクライアントPCにも使用者指名ごとに料金が発生する。
565デフォルトの名無しさん
2021/09/23(木) 20:46:27.83ID:6yVIV0g8 > ISO 規格になってる言語は安心だな。
やはりC#の勝利か
ISO/IEC 23270:2018
Information technology - Programming languages - C#
https://www.iso.org/standard/75178.html
やはりC#の勝利か
ISO/IEC 23270:2018
Information technology - Programming languages - C#
https://www.iso.org/standard/75178.html
566デフォルトの名無しさん
2021/09/23(木) 22:34:58.67ID:zvLE5dwK C#の規格って全然更新されてなくて、実質的に全く意味をなしてないぞ
567デフォルトの名無しさん
2021/09/23(木) 22:41:18.72ID:ELm2gUfv 更新されないのはいいことだ
568デフォルトの名無しさん
2021/09/23(木) 22:58:53.32ID:0/zDNCjz 標準規格は「存在している」ことに意味がある
Rubyなんかもそうだけど、実際には更新されてなくて規格自体の利用価値は皆無だとしても、採用を後押しするための営業トークとしては有効だ
実際564や565は騙されてるわけだしな
Rubyなんかもそうだけど、実際には更新されてなくて規格自体の利用価値は皆無だとしても、採用を後押しするための営業トークとしては有効だ
実際564や565は騙されてるわけだしな
569デフォルトの名無しさん
2021/09/24(金) 00:30:37.06ID:0A2A7GYN570デフォルトの名無しさん
2021/09/24(金) 00:49:07.36ID:Sk1oVFyh OpenJDKで何一つ困ってないからなあ
Oracleがライセンス変更で一儲け狙ったのに、AmazonとかのOpenJDKのディストリビューションにJava市場がごっそり流れた
焦ったOracleがバージョン17から少しの間無償に戻しますんでどうかまた使ってくださいと懇願中(今ここ)
OracleJDKの有償サポートを望んでいる顧客がほとんどいなかったという結論が出たのでOpenJDKさえあればいい
Oracleがライセンス変更で一儲け狙ったのに、AmazonとかのOpenJDKのディストリビューションにJava市場がごっそり流れた
焦ったOracleがバージョン17から少しの間無償に戻しますんでどうかまた使ってくださいと懇願中(今ここ)
OracleJDKの有償サポートを望んでいる顧客がほとんどいなかったという結論が出たのでOpenJDKさえあればいい
571デフォルトの名無しさん
2021/09/24(金) 02:02:31.19ID:LQ0rd/n8 >>567
実装の方がどんどん更新されてる
実装の方がどんどん更新されてる
572デフォルトの名無しさん
2021/09/25(土) 21:04:24.06ID:9x+/yV3L Java の 3rd デベロッパを排除するため、Oracle が Java に機能追加して、
OpenJDK などのプロジェクトが Java に準拠していないと嫌がらせ訴訟することはできる。
Oracle が Microsoft に Java 訴訟したときの言いがかり内容は違うけど、同じ手法を使わないとは言えない。
スレチだから そろそろおしまい。
OpenJDK などのプロジェクトが Java に準拠していないと嫌がらせ訴訟することはできる。
Oracle が Microsoft に Java 訴訟したときの言いがかり内容は違うけど、同じ手法を使わないとは言えない。
スレチだから そろそろおしまい。
573デフォルトの名無しさん
2021/09/25(土) 21:42:09.17ID:cC0TU6KS 自分が言いたいこと言い終わったからおしまいか
574デフォルトの名無しさん
2021/09/25(土) 22:33:53.09ID:Y1lLm4iT WinRMはいつまで生き残るんだろうね?
OpenSSHに取って代わられることになるのかなぁ
OpenSSHに取って代わられることになるのかなぁ
575デフォルトの名無しさん
2021/09/29(水) 23:56:59.06ID:fF+iSaYJ576デフォルトの名無しさん
2021/10/01(金) 00:56:43.69ID:vAUcQRYE 適当なのを探すのが面倒でリマインダーアプリをpowershell(C#)辺りで作ろうかと思うんだが
UIをwinformにするかWeb系にするか迷ってる
UIをwinformにするかWeb系にするか迷ってる
577デフォルトの名無しさん
2021/10/01(金) 01:47:02.72ID:9Tf9Sjyk Windows.UI.Notificationsを使うという手も
https://den.dev/blog/powershell-windows-notification/
https://den.dev/blog/powershell-windows-notification/
578デフォルトの名無しさん
2021/10/03(日) 20:53:35.06ID:GJ3xKl9+ ver7.1のConvertFrom-Jsonで取得したPSCustomObject/Hashtableが
{ "name"="foo"; "count"=1}
となっていて、key名に"count"が使われている為、
$v.count
$v['count']
等の値の取得でエラーになってしまうんですが、どうにか取得する方法は無いですか?
自分にはjsonの原文をreplaceするぐらいしか方法が見つかりませんでした。orz
{ "name"="foo"; "count"=1}
となっていて、key名に"count"が使われている為、
$v.count
$v['count']
等の値の取得でエラーになってしまうんですが、どうにか取得する方法は無いですか?
自分にはjsonの原文をreplaceするぐらいしか方法が見つかりませんでした。orz
579デフォルトの名無しさん
2021/10/03(日) 21:17:26.86ID:RfSUiDPv どんなJSONを使ったのか書いてくれ
580578
2021/10/03(日) 21:20:02.89ID:GJ3xKl9+ すみません。別の理由でエラーが出てたみたいで、ちゃんと取得できました。
申し訳ないです。
申し訳ないです。
581デフォルトの名無しさん
2021/10/05(火) 14:45:19.45ID:Vzh0q/ov 名前被ってても普通に$hash.count/$hash["count"]で.Valuesのcountが引かれる筈だけど、それがハッシュの文法なので
むしろコレクションのpropertyのCountが隠されるのが問題、こちらが確実に欲しければ$hash.Values.Count等と書くのが安全
$hash.Keys.countも同じ値を返すけど、これはKeysからキー"count"を引いてるように読まれる可能性が高いので勧めない
むしろコレクションのpropertyのCountが隠されるのが問題、こちらが確実に欲しければ$hash.Values.Count等と書くのが安全
$hash.Keys.countも同じ値を返すけど、これはKeysからキー"count"を引いてるように読まれる可能性が高いので勧めない
582デフォルトの名無しさん
2021/10/06(水) 13:37:05.91ID:Y3s6WLpv >>581
$hash = @{Values = @{Count = -1}} とかだと、駄目だよね。
これ、本当に確実に取得するのは、わりと面倒なのかも。普通の使い方なら、
$hash.get_Count() とか、$hash.psbase.Count とかでいいとは思う。でも、
$hash | Add-Member ScriptMethod get_Count {-1} -Force
とかされると、get_Count() は使えなくなる。
$hash | Add-Member NoteProperty psbase @{Count = -1} -Force
とかはエラーになるけれど、
$psbase = New-Object Management.Automation.PSNoteProperty psbase, @{Count = -1}
$hash.psobject.Members.Add($psbase, $true)
とか強引に追加すると、妙なことになって、psbase.Count も使えなくなる。
本当に確実そうな方法は、(New-Object hashtable $hash).psbase.Count とか、
$hash.GetType().GetProperty('Count').GetValue($hash) とか?
$hash = @{Values = @{Count = -1}} とかだと、駄目だよね。
これ、本当に確実に取得するのは、わりと面倒なのかも。普通の使い方なら、
$hash.get_Count() とか、$hash.psbase.Count とかでいいとは思う。でも、
$hash | Add-Member ScriptMethod get_Count {-1} -Force
とかされると、get_Count() は使えなくなる。
$hash | Add-Member NoteProperty psbase @{Count = -1} -Force
とかはエラーになるけれど、
$psbase = New-Object Management.Automation.PSNoteProperty psbase, @{Count = -1}
$hash.psobject.Members.Add($psbase, $true)
とか強引に追加すると、妙なことになって、psbase.Count も使えなくなる。
本当に確実そうな方法は、(New-Object hashtable $hash).psbase.Count とか、
$hash.GetType().GetProperty('Count').GetValue($hash) とか?
583デフォルトの名無しさん
2021/10/14(木) 16:20:34.79ID:Zuo7IXnW powershellのcd (Get-Childitem)には、CDPATHに相当するもの(か概念)って無いのでしょうか?
(行きたいディレクトリに簡単に行けなくて 不便を感じてるのですが)
(行きたいディレクトリに簡単に行けなくて 不便を感じてるのですが)
584デフォルトの名無しさん
2021/10/14(木) 17:12:51.73ID:F6GJrbHM ZLocationがおすすめ
https://github.com/vors/ZLocation
https://github.com/vors/ZLocation
585デフォルトの名無しさん
2021/10/14(木) 17:56:55.09ID:Zuo7IXnW >>584 情報ありがとうございます
まぁたしかに 何でも「つくればある」のだから、自分なりに工夫してみようかと思いました
まぁたしかに 何でも「つくればある」のだから、自分なりに工夫してみようかと思いました
586デフォルトの名無しさん
2021/10/14(木) 18:22:20.84ID:Zuo7IXnW >>583
ついでに言えば…Set-Location の間違いでした (笑) 使い始めて二日目なもので...
ついでに言えば…Set-Location の間違いでした (笑) 使い始めて二日目なもので...
587デフォルトの名無しさん
2021/10/14(木) 21:15:12.30ID:loydBA97 ディレクトリをSet-Locationしたら.NETのAPI側も合わせないとずれたままだぞ
だから次のような2行書いとく習慣付けるといいかも
カレントパス指定なんてめったに使わないけど
Set-Location -Path パス名
[IO.Directory]::SetCurrentDirectory((Get-Location).ProviderPath)
だから次のような2行書いとく習慣付けるといいかも
カレントパス指定なんてめったに使わないけど
Set-Location -Path パス名
[IO.Directory]::SetCurrentDirectory((Get-Location).ProviderPath)
588デフォルトの名無しさん
2021/10/14(木) 23:40:28.07ID:aRG2i7ze それこそGetCurrentDirectory使うときだけの話だよな
対話的にSet-Location使う程度では必要ないだろう
べつに(pwd).Pathとかも渡せるし
CDPATH
pwshでそんな移動しまくらないからワイには必要ないな
対話的にSet-Location使う程度では必要ないだろう
べつに(pwd).Pathとかも渡せるし
CDPATH
pwshでそんな移動しまくらないからワイには必要ないな
589デフォルトの名無しさん
2021/10/15(金) 01:03:33.08ID:P3+DrVIB 適当に$CDPATH=Get-Locationとかやってりゃいいんじゃない?
590デフォルトの名無しさん
2021/10/15(金) 22:58:53.33ID:KlL89mo2591デフォルトの名無しさん
2021/10/19(火) 14:42:15.67ID:1a7BUMOp 一旦powershellで作ったはいいものの
起動が遅くてバッチやvbsで作り直す
常駐物ならC#で書き直す
起動が遅くてバッチやvbsで作り直す
常駐物ならC#で書き直す
592デフォルトの名無しさん
2021/10/19(火) 20:57:46.00ID:aBJ6lObS 一旦powershellで作ったのはいいものでした
593デフォルトの名無しさん
2021/10/19(火) 21:23:11.41ID:90J0NSJZ PowerShellの起動が遅いと思うような環境ならC#アプリの起動も遅そうな気がするんだが
594デフォルトの名無しさん
2021/10/20(水) 12:22:16.87ID:yLBdcth0 >>593
バッチやvbsだとpowershellが起動するまでに処理が終わってるし
C#に関しては話にならんほど差が出る
powershellの起動の問題は.NETランタイム以外にあるんじゃないの
サクっと作れるのは評価するが本番運用ではとても使えない
バッチやvbsだとpowershellが起動するまでに処理が終わってるし
C#に関しては話にならんほど差が出る
powershellの起動の問題は.NETランタイム以外にあるんじゃないの
サクっと作れるのは評価するが本番運用ではとても使えない
595デフォルトの名無しさん
2021/10/20(水) 12:56:45.87ID:ngUNbqNs 要件次第としか
596デフォルトの名無しさん
2021/10/20(水) 13:47:15.88ID:CIRlmBOD 起動時間シビアに気にするような本番運用ばかりじゃないしな
597デフォルトの名無しさん
2021/10/20(水) 20:57:29.51ID:3GaA8N5r ネットワークが遅いのでは?
起動時にインターネット接続見に行くので、ネットワーク遅いと辛いことに
スクリプト実行するだけなら、noprofile, noninteractive付けると良いですよ
起動時にインターネット接続見に行くので、ネットワーク遅いと辛いことに
スクリプト実行するだけなら、noprofile, noninteractive付けると良いですよ
598デフォルトの名無しさん
2021/10/20(水) 20:57:35.93ID:3tEv1Sl5 PowerShellの起動が遅い人はプロファイルで時間がかかる処理してるんじゃないの
599デフォルトの名無しさん
2021/10/20(水) 21:53:25.89ID:U4hhSk0+ イニシャルローディング時間が遅いだけで初回限りの現象なのでは?
600デフォルトの名無しさん
2021/10/20(水) 23:22:34.38ID:P5BDeiqM ネットワーク見てたのchocolatyのプロファイル読んでたからでしたわw
601デフォルトの名無しさん
2021/10/21(木) 04:01:48.12ID:ehpI/07M ふざけんな
602デフォルトの名無しさん
2021/10/21(木) 12:31:37.50ID:kkshIJkE PowershellでExcel操作できるの素晴らしくて信者になりそう
VBAやったことないけどVScodeで書きにくいってだけで敬遠する
VBAやったことないけどVScodeで書きにくいってだけで敬遠する
603デフォルトの名無しさん
2021/10/21(木) 12:48:08.17ID:WbB1T+tY 流石にVBAの方が使いやすいぞ
でもpwshでやるのが好き
でもpwshでやるのが好き
604デフォルトの名無しさん
2021/10/21(木) 12:51:21.99ID:yR1RZl9g ExelがインストールされてるならCOM経由で操作できると思うけど、インストールされてない環境ならC#用のライブラリ使う感じかな
605デフォルトの名無しさん
2021/10/21(木) 12:52:01.86ID:yR1RZl9g VBAは遅すぎてなぁ
606デフォルトの名無しさん
2021/10/21(木) 19:59:19.64ID:9KFcOoVu チャートぐらい.NETの機能で描けるしExcelもVBAもいらない
607デフォルトの名無しさん
2021/10/21(木) 22:53:22.14ID:snz0FCDA excelはやたら高度な因子分析機能やソルバ(非線形、進化的最適化)ついてるから侮れない
608デフォルトの名無しさん
2021/10/21(木) 23:03:44.60ID:fjfGcsWO チャート描くのが目的なら使わなくていいんじゃない?
Exelの資料を編集するのが目的なら、COMかライブラリ使うしかない
Exelの資料を編集するのが目的なら、COMかライブラリ使うしかない
609デフォルトの名無しさん
2021/10/22(金) 08:29:48.79ID:tVaBgZ6B エクセルよくわからんけどA.xslxのあるセルの値をB.xlsxのある場所に移す簡単なプログラム依頼されてて、VBA使えばできるんだろうけどわざわざシートにバインドされたマクロ書くのが無駄に感じるからpowershellで済ませようとしている...ダメ?
610デフォルトの名無しさん
2021/10/22(金) 09:07:19.52ID:RUjjkZxa 好きにしろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- んなっしょい🍬禁止🈲のお🏡
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
