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/08/22(日) 22:06:23.04ID:uP295b6W
>>491
だからrubyキチはバカって言われるんだよ
2021/08/22(日) 23:05:00.65ID:bImPNL7l
>>491
1ファイルで実行したいって言ってるのにショートカット作るのかよw
2021/08/23(月) 21:31:06.73ID:KSZvfVlM
てすと
C:\Windows\System32\cmd.exe
2021/08/24(火) 07:37:43.99ID:ttKQ7L6u
cmd.exe
2021/08/25(水) 10:04:47.88ID:fqAWoYoi
バッチファイルに埋め込むときはシフトJISにしないといけないのがチョイ面倒ですね
昨今だとメモ帳もutf-8ですし
2021/08/26(木) 00:11:52.59ID:nRffzhpX
コードページ変えられるよ
2021/08/26(木) 00:12:33.27ID:nRffzhpX
chcp 65001
2021/08/26(木) 00:27:24.00ID:gGZ1hKqh
コードページ変更っていろいろ罠があったような…
フォントを変えておかないとダメとか
コマンドの一部は期待どおりに動作しないとか
2021/08/26(木) 09:51:33.43ID:ACJcVgWm
シフトJISにしておけばget-contentでエンコーディング指定も不要なので、まぁ、いいかなと
VS codeでオープン時or保存時にシフトJISにするだけですし
2021/08/26(木) 10:33:43.73ID:+CO4gcjh
$PSDefaultParameterValue["*:Encodings"] = "utf8NoBom"にしてるけど大体大丈夫だ
コマンドレットには全て暗黙に渡るので一貫性は保てる
Core 6/7だと空でもこれがデフォルトのはず
cmdはレジストリのどっかでchcp 65001指定した、とりあえず今まで問題はない、気がする
2021/08/26(木) 10:37:16.39ID:+CO4gcjh
utf8は低レベルでの扱いがめんどいから、固定長utf-32か、ほぼ固定長のutf-16が流行ってくれた方が嬉しかったんだけれども…
2021/08/26(木) 11:30:02.61ID:ZNJjgCSR
非圧縮だと通信速度が4倍遅くなる可能性があるけどよいか?
2021/08/26(木) 12:31:14.96ID:+CO4gcjh
デコードに結構計算要るし、最悪ケースで一番容量食うのはutf-8だったりするので、俺はそのへん懐疑的
まあ普及してしまったものは仕方ない
2021/08/26(木) 12:41:27.12ID:+CO4gcjh
パイプでネイティブコマンド繋いだりすると化けることあるな
普通のは大丈夫、less.exeとかmingw64配布のネイティブバイナリが怪しい?

sasp を付けて流し込むと直る模様、エンコ調べてハードコードより手軽かつ変更に強そうなのでおすすめ
2021/08/26(木) 12:47:48.74ID:+CO4gcjh
preference variableのエンコード指定はコマンドレットに適用されるので、native.exeは面倒見てくれないけど、saps exe -nonewなら見てくれる
ってことかな
2021/08/26(木) 13:49:51.35ID:nnRqDEk/
win用ページャはvimがいい
マニュアル読むにもデフォルトでpowershellのシンタックスハイライトあるし、読み書きエンコードがコマンドラインオプション指定できて、高度なコマンドも渡せるフィルターとして使える
2021/08/26(木) 15:27:38.41ID:ACJcVgWm
vs code使ってるから、インテリセンスで大体事足りるし、ショートカットキーでオンラインヘルプがブラウザでひらくから、あんま困ったことないかなぁ
2021/08/26(木) 17:57:13.12ID:+CO4gcjh
フィルターというと
gc file |vim - -Es -c ":set fenc=sjis" -c
%p | ...
みたいな使い方か、nkfでもいいけど
sedが多バイト文字怪しかったりbom有りで死んだりするのでvim -c "s/foo/bar/g" -c "wq"で、文法がほぼ同じなvimで代用したりはする
機能的にはsedの上位版ではあるけど、一度バッファに全て読み込むのでスケーラブルじゃないね

先読み後読み駆使した複雑な正規表現ではコンパイルして使い回せるpwshに軍配が挙がる
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

正規表現でマッチした次の行、次の次の行を得るには どう記述すればいいでしょうか?
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]
}
2021/08/28(土) 22:18:47.92ID:ClOfPjkS
ありがとうございました!
2021/08/30(月) 10:04:38.64ID:AbACJw8j
正規表現マスターおるね
2021/08/30(月) 13:35:00.90ID:VkQf119i
カッコのネストに対応してないのが気になる
正規表現はテスターサイトが色々あるから、とりあえず、色々試しながら覚えるのが手っ取り早いと思う
.netの正規表現ならregex stormが老舗
昔はよくお世話になってました
2021/08/30(月) 20:36:24.39ID:J14B/D7S
大昔awkで書いてた時にマッチしたら次の1行読むって処理にしてたのを思い出した
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()
2021/08/31(火) 01:30:20.09ID:Ee2Wu2cn
playwrightもpowershellともう少し親和性高いアセンブリ用意して欲しいところ
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 は実行しています。
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してるから,そのせいでは?
2021/09/11(土) 00:04:02.84ID:IblrjkB0
>>516
XPath を使っているの?

CSS セレクターも使えるの?
2021/09/12(日) 00:15:16.54ID:MdBr1Okr
>>521
使えるよ
2021/09/15(水) 21:42:25.76ID:iYdwhCOo
tasklistの/fi “status eq not responding”を毎回入力するのがくそめんどいんだけど省略形ってない?
2021/09/15(水) 22:11:56.20ID:VNs9ID1i
>>523
フィルタ済みのコマンドにエイリアスをセットして使ったら?
https://tks2.co.jp/2020/04/05/power-shell/
2021/09/16(木) 06:56:04.46ID:vPAKZgzi
>>524
遅くなったがエイリアスで解決したわサンクス
しかしbashやzshなら便利なエイリアスが最初からたくさんあるのにPowershellって本当に使い辛いな
特にPascal CaseとKebab Caseで命名されてるCmdletのクソさが半端じゃないわ
2021/09/16(木) 07:26:20.86ID:1vkERD+L
ならbash使えば良いじゃん
2021/09/16(木) 08:36:27.53ID:YRR26wx4
PSスレで質問に答えてもらって感謝しつつPSをめいっぱいdisって周囲をイラつかせてから去っていくスタイル
これは天然だなw
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)
2021/09/16(木) 08:53:37.34ID:d2OD6VRD
ネイティブコマンドは/?を見てシグネチャを書き写し、引数丸投げするツーライナースクリプトを用意すると便利よ
パスに置いておけば勝手に補完が効くので、保管用ディレクトリを作っておき、コマンドラインからリダイレクトで適宜追記してる

自分でオプション文字列をパースするロジックを書き、それをcompletionコマンドで登録していく方式のbash_completionより便利
2021/09/16(木) 09:31:01.40ID:d2OD6VRD
あとwin限定だけど、tcsh-likeな伝統的aliasコマンドが好きならdoskey コマンドが全く等価
doskey ls=dir /ad
のように使う

名の示す通りレガシーかつunix/linuxと$profileが共有できないので、*-aliasか、シェル関数を推奨
2021/09/16(木) 10:03:53.37ID:4L00LZ3y
doskeyは外部コマンドだからpwshからも使えるはずだけど、f7でのヒストリ表示とかが効かん
古いコンソールAPI使ってTUIレンダリングアップするからターミナル依存かも?
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の指定を忘れずに
2021/09/16(木) 11:17:45.26ID:80LkMEQe
そしてPSReadlineのデフォルトではF7にヒストリ表示をバインドしてないので何も起きない

Set-PSReadlineKeyHandler -Key F7 コマンド
でバインドできるのでビルトイン、doskey、その他お好みのを
2021/09/16(木) 11:32:09.09ID:80LkMEQe
doskeyは標準コマンドだしちょっとしたコンソールアプリにラインエディット機能付けるのに未だに便利だったりする

readlineやlinenoiseは大げさ過ぎるし、rlwrapはwin環境に入ってない事が多いし
2021/09/16(木) 11:45:45.62ID:4L00LZ3y
windows 11でPSCore7が標準装備になるらしいし、気兼ねなくPSReadlineでインタプリタとか書けるようになるんかね
536デフォルトの名無しさん
垢版 |
2021/09/16(木) 11:46:52.35ID:6/uu001h
psのコンソールでVZエディタのファイラーみたいにファイル選択できるのありますか?
2021/09/16(木) 11:59:04.94ID:4L00LZ3y
俺はvimのnetrw(標準プラグイン)使ってるな
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
2021/09/17(金) 18:09:35.08ID:ELLRTb6O
コンソール上でコマンドレットに複数の引数をパイプラインで渡したいとき、一々
$temp = New-TemporaryFile
notepad $temp
cat $temp|渡し先
rm $temp
ってやってるんだけど、一々一時ファイル作るのが面倒です

・実行するとテキストエディタが開く
・保存して閉じたら、その内容が改行で区切られてパイプラインに渡される
・保存したファイルは勝手に消える
みたいなのをやりたいのですが何かいい方法はないでしょうか。

vimとやらでいい具体に出来そうな気がするのですが
2021/09/17(金) 18:37:18.96ID:h9YhuTVR
書いてる一連の処理をスクリプトにまとめるのではダメなの?
2021/09/17(金) 18:41:27.24ID:h9YhuTVR
エディタで編集したいってのが要件でないのなら、powershellのコンソールから配列作ってパイプに渡せばいいんじゃない?
2021/09/17(金) 18:49:09.93ID:h9YhuTVR
配列だとクォート面倒だからヒアドキュメントの方がいいか
2021/09/17(金) 18:49:56.37ID:8dXhLdl/
そもそもテキストエディタ使う時点わけわからん
普通にこんな感じでカンマ区切りで複数の値ぶち込んで一行で終わりで良くね
"値1","値2","値3","値4"|コマンドレット
2021/09/17(金) 19:28:59.09ID:WV0Z1neM
一時ファイルを要求してるのはpwshじゃなくてnotepadの方だからなあ
formsで複数行入力できるテキストエリアでも作ったらいいんじゃないの
2021/09/17(金) 19:36:59.65ID:ELLRTb6O
すいません

$temp = New-TemporaryFile
notepad $temp
部分をbegin、

cat $temp
部分をproccess、

rm $temp
部分をend、

にそれぞれ設定したコマンドレット作ったら解決しました。

>>543
スクリプトならともかく、毎回"a","b",ってやるの大変過ぎません・・・?
テキストエディタで書けばコピペやちょっとした編集も出来るし便利だと思ったんですが
2021/09/17(金) 20:19:24.87ID:HNxzcP2W
grep使えるテキストエディタなら一瞬だし
2021/09/17(金) 20:43:16.94ID:ELLRTb6O
>>546
詳しくお願いします
548デフォルトの名無しさん
垢版 |
2021/09/17(金) 23:17:28.58ID:f6z6dViq
542も書いてるけどヒアドキュメントでいいのでは?

PS C:\> -split @"
>> りんご
>> ゴリラ
>> ラッパ
>> パンツ
>> "@ |% { $_ * $_.length }
りんごりんごりんご
ゴリラゴリラゴリラ
ラッパラッパラッパ
パンツパンツパンツ

普通にコピペもできるし
2021/09/19(日) 06:06:12.94ID:WE3+ZJYa
>>535
> windows 11でPSCore7が標準装備になるらしいし、

どこの情報?
Previewにあるのは正式版ではごっそり消えることあるよ
2021/09/19(日) 06:28:42.01ID:WE3+ZJYa
>>318
3.10はまだrc
551デフォルトの名無しさん
垢版 |
2021/09/19(日) 18:29:20.62ID:8fpQIVxp
>>535
Windows11いれてみたけどPowershellは5.1で、pwshコマンドはないな…。
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 にインストールできます。
2021/09/21(火) 11:09:28.80ID:nttPkmcf
.net (core) に紐付くpwshとOSに紐付くpowershellか
11がpwshのみになったら、結構なインパクトだね
2021/09/21(火) 11:22:39.67ID:Da3XTUmu
まさかpowershellがこんなに早く泥沼レガシー化するとはな
まあPowerShellが成功したことの裏返しではあるが
2021/09/21(火) 11:32:16.53ID:nttPkmcf
まだ、pwsh一本になるかわからんのでは?
まぁ、自分はpwshになっても困らんけど
2021/09/21(火) 13:22:46.25ID:/2oLRKWG
>>553
powershellにどっぷり依存したスクリプトは死亡か
2021/09/21(火) 18:35:29.10ID:M4Sh91tB
2年弱で開発会社から使うなと言われる言語/バージョンなんて使えねぇ。
ソフト開発中に期限切れになる。
2021/09/21(火) 19:45:57.83ID:+NRxBuUH
Windows PowerShell 5.1使っておけばいいんじゃね
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%の市場シェア)。
2021/09/22(水) 09:19:00.25ID:tSQB3N1g
>>559
Javaはクソだし脱Oracleの流れは相変わらず進んでるしで未来はないだろ
代わりの効かない言語でもなくなっちゃったし
2021/09/22(水) 20:05:39.38ID:3C9wtQqc
みずほ銀は Java 変えるの不可能なんじゃね
2021/09/23(木) 05:09:50.35ID:zN5TM8vm
そりゃまだCOBOLメインテナンスしてるとこもある
2021/09/23(木) 15:45:46.23ID:emRd8wBh
短期のリリースサイクルが困るならLTSのみ使って、インターネット接続がない特殊な用途なら、別途、MSと相談かwindows使わないことを検討したほうがいい
まぁ、ちょっと前だと新生銀行のATMとか、最近でもデジタルサイネージで再起動促すダイアログでて止まってたりするの見かけたけど

普通の使い方ならバージョン固定にしてセキュリテイパッチあてない運用は取り得無いから、ガンガン更新するしかないよね
2021/09/23(木) 19:44:57.25ID:vr6lr97h
ISO 規格になってる言語は安心だな。
古い規格で作成したシステムも、いつまでも正々堂々と使える。
使うなとは誰も言わないし、ライセンス料も請求されないし、訴訟も起こされない。 後方互換もばっちり。

Java は 1CPU あたり年60万円請求される。 マルチCPU、クラスタシステム、マルチサーバならサーバ側だけでも途方もない金額になるし、
それに加えクライアントPCにも使用者指名ごとに料金が発生する。
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
2021/09/23(木) 22:34:58.67ID:zvLE5dwK
C#の規格って全然更新されてなくて、実質的に全く意味をなしてないぞ
2021/09/23(木) 22:41:18.72ID:ELm2gUfv
更新されないのはいいことだ
2021/09/23(木) 22:58:53.32ID:0/zDNCjz
標準規格は「存在している」ことに意味がある
Rubyなんかもそうだけど、実際には更新されてなくて規格自体の利用価値は皆無だとしても、採用を後押しするための営業トークとしては有効だ
実際564や565は騙されてるわけだしな
2021/09/24(金) 00:30:37.06ID:0A2A7GYN
>>564
今はJRE使わない選択もできるけど、
新規はOracleと関わるの避けるだろうからJavaは緩やかに死んでいくと見た
2021/09/24(金) 00:49:07.36ID:Sk1oVFyh
OpenJDKで何一つ困ってないからなあ
Oracleがライセンス変更で一儲け狙ったのに、AmazonとかのOpenJDKのディストリビューションにJava市場がごっそり流れた
焦ったOracleがバージョン17から少しの間無償に戻しますんでどうかまた使ってくださいと懇願中(今ここ)
OracleJDKの有償サポートを望んでいる顧客がほとんどいなかったという結論が出たのでOpenJDKさえあればいい
2021/09/24(金) 02:02:31.19ID:LQ0rd/n8
>>567
実装の方がどんどん更新されてる
2021/09/25(土) 21:04:24.06ID:9x+/yV3L
Java の 3rd デベロッパを排除するため、Oracle が Java に機能追加して、
OpenJDK などのプロジェクトが Java に準拠していないと嫌がらせ訴訟することはできる。

Oracle が Microsoft に Java 訴訟したときの言いがかり内容は違うけど、同じ手法を使わないとは言えない。

スレチだから そろそろおしまい。
2021/09/25(土) 21:42:09.17ID:cC0TU6KS
自分が言いたいこと言い終わったからおしまいか
2021/09/25(土) 22:33:53.09ID:Y1lLm4iT
WinRMはいつまで生き残るんだろうね?
OpenSSHに取って代わられることになるのかなぁ
2021/09/29(水) 23:56:59.06ID:fF+iSaYJ
>>545
そこでcmd |vim -Es -c ':g/re/p'
>>574
sshもwinRMも気兼ねなく両方使えばいいのでは
unixとlinuxが接続先ならssh、rshにpwshを設定するのはあまり想定されてないのか設定がちょっと面倒

だとしても、両方標準でサポートしてるwinはやはりunix/linuxよりリモート向きOSだと思ってます
2021/10/01(金) 00:56:43.69ID:vAUcQRYE
適当なのを探すのが面倒でリマインダーアプリをpowershell(C#)辺りで作ろうかと思うんだが
UIをwinformにするかWeb系にするか迷ってる
2021/10/01(金) 01:47:02.72ID:9Tf9Sjyk
Windows.UI.Notificationsを使うという手も
https://den.dev/blog/powershell-windows-notification/
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
2021/10/03(日) 21:17:26.86ID:RfSUiDPv
どんなJSONを使ったのか書いてくれ
580578
垢版 |
2021/10/03(日) 21:20:02.89ID:GJ3xKl9+
すみません。別の理由でエラーが出てたみたいで、ちゃんと取得できました。
申し訳ないです。
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"を引いてるように読まれる可能性が高いので勧めない
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) とか?
583デフォルトの名無しさん
垢版 |
2021/10/14(木) 16:20:34.79ID:Zuo7IXnW
powershellのcd (Get-Childitem)には、CDPATHに相当するもの(か概念)って無いのでしょうか?
(行きたいディレクトリに簡単に行けなくて 不便を感じてるのですが)
2021/10/14(木) 17:12:51.73ID:F6GJrbHM
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 の間違いでした (笑) 使い始めて二日目なもので...
2021/10/14(木) 21:15:12.30ID:loydBA97
ディレクトリをSet-Locationしたら.NETのAPI側も合わせないとずれたままだぞ
だから次のような2行書いとく習慣付けるといいかも
カレントパス指定なんてめったに使わないけど
Set-Location -Path パス名
[IO.Directory]::SetCurrentDirectory((Get-Location).ProviderPath)
2021/10/14(木) 23:40:28.07ID:aRG2i7ze
それこそGetCurrentDirectory使うときだけの話だよな
対話的にSet-Location使う程度では必要ないだろう
べつに(pwd).Pathとかも渡せるし

CDPATH 
pwshでそんな移動しまくらないからワイには必要ないな
2021/10/15(金) 01:03:33.08ID:P3+DrVIB
適当に$CDPATH=Get-Locationとかやってりゃいいんじゃない?
2021/10/15(金) 22:58:53.33ID:KlL89mo2
v7.0.8
https://github.com/PowerShell/PowerShell/releases/tag/v7.0.8
v7.1.5
https://github.com/PowerShell/PowerShell/releases/tag/v7.1.5
2021/10/19(火) 14:42:15.67ID:1a7BUMOp
一旦powershellで作ったはいいものの
起動が遅くてバッチやvbsで作り直す
常駐物ならC#で書き直す
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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