前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
PowerShell -Part 5
■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
334デフォルトの名無しさん
2021/06/02(水) 20:05:35.68ID:paXbiIpM ボスの発言の後でそれ言える勇気は凄いな
詳細thxだけど知り合いにバレないよう気を付けてね
詳細thxだけど知り合いにバレないよう気を付けてね
335デフォルトの名無しさん
2021/06/02(水) 20:16:35.85ID:bfx/xSx/ wslとか言ってる奴はプロセス制御とかどうする気なのか気になる
winネイティブ実装のbash(msys?)なら原理的には可能とおもうが…
*-Processがそれぞれどのコマンドにマッピングされてるのか気になる
winネイティブ実装のbash(msys?)なら原理的には可能とおもうが…
*-Processがそれぞれどのコマンドにマッピングされてるのか気になる
336デフォルトの名無しさん
2021/06/02(水) 21:09:20.70ID:hTaL5nRv 公式win版sh系移植が出るんなら、それはそれで裾野が広がるからいいと思う
ただし新規導入されるであろうcomオブジェクトやレジストリ弄りコマンドを、引数補完の弱いbashでやるのは勘弁してほしい
たぶん古き悪き対話式のwinコマンド叩く事になりそう
もしやるならzshで頼む
ただし新規導入されるであろうcomオブジェクトやレジストリ弄りコマンドを、引数補完の弱いbashでやるのは勘弁してほしい
たぶん古き悪き対話式のwinコマンド叩く事になりそう
もしやるならzshで頼む
337デフォルトの名無しさん
2021/06/02(水) 21:58:17.73ID:rILnhmEC シェルスクリプトなんて現システムで動けば十分なのに遠い未来になくなること心配しても意味ないような
338デフォルトの名無しさん
2021/06/02(水) 22:02:01.60ID:UfLjqhXv プロバイダを擬似ファイルシステムとしてマウントしすれば補完できないかな
プロパティやメソッドまでそうすべきかは悩むところ、やりすぎ?
同名の環境変数やコマンドをどうマップするか
unix系pwshは割り切って環境変数は倣ってる($env:プロバイダ以下に)
コマンドレットは命名規則上被らない
win標準エイリアスはwriteとかが被るけどこれも尊重
pwsh -nop
gal write # not found
(gcm write) # /usr/bin/write
らしい
マイナーコマンドなのでもちろんset-aliasしてるが
ポータブルなps1書く時には一般的な名前のwin標準エイリアスは避けた方がいいかもね
プロパティやメソッドまでそうすべきかは悩むところ、やりすぎ?
同名の環境変数やコマンドをどうマップするか
unix系pwshは割り切って環境変数は倣ってる($env:プロバイダ以下に)
コマンドレットは命名規則上被らない
win標準エイリアスはwriteとかが被るけどこれも尊重
pwsh -nop
gal write # not found
(gcm write) # /usr/bin/write
らしい
マイナーコマンドなのでもちろんset-aliasしてるが
ポータブルなps1書く時には一般的な名前のwin標準エイリアスは避けた方がいいかもね
339デフォルトの名無しさん
2021/06/02(水) 22:05:33.29ID:UfLjqhXv 話が逸れた…
まあ逆移植ではこうなってるという例として
まあ逆移植ではこうなってるという例として
340デフォルトの名無しさん
2021/06/02(水) 22:34:03.30ID:tWTDTS70 Write(-Output)はよく使うからwriteで済ましてしまうな
どうせ俺はPublish-Script/Moduleするようなレベルじゃないけど
どうせ俺はPublish-Script/Moduleするようなレベルじゃないけど
341デフォルトの名無しさん
2021/06/03(木) 02:06:10.68ID:Xmy19u29 パイプラインとリダイレクトの解釈フェーズが独立しているbshの文法では、疑似ファイル方式は難しいと思う
"> /dev/null"なんて使ってないスクリプトの方が稀に思うけど、winの変な"NUL"ファイルに適切に読み替えるには| Out-Fileと>file (またはコマンド置換)が可換である必要があるよね?
powershellでも合法なはずの"> NUL"は普通オープンに失敗するはず
だから自動変数を使った"> $null"、コマンドを使った" | Out-Null"と書けるように>と|を同格にしたわけで
shっぽい言語が使いたいなら、ぱっと見似てる新言語作ったほうが早い
"> /dev/null"なんて使ってないスクリプトの方が稀に思うけど、winの変な"NUL"ファイルに適切に読み替えるには| Out-Fileと>file (またはコマンド置換)が可換である必要があるよね?
powershellでも合法なはずの"> NUL"は普通オープンに失敗するはず
だから自動変数を使った"> $null"、コマンドを使った" | Out-Null"と書けるように>と|を同格にしたわけで
shっぽい言語が使いたいなら、ぱっと見似てる新言語作ったほうが早い
342デフォルトの名無しさん
2021/06/03(木) 02:17:23.64ID:Xmy19u29 winの変な仕様に適合する為にpowershellは柔軟な文法になった説
343デフォルトの名無しさん
2021/06/03(木) 08:24:01.46ID:xKlnG0sF >winの変な仕様
具体的に
具体的に
344デフォルトの名無しさん
2021/06/03(木) 09:17:38.99ID:CvOb6PLb >>335
プロセス制御って?
Windowsの他のプロセスを制御したいならWSLからWindowsのコマンドを呼べばいいし、
Linuxのプロセスなら当然UNIXの世界で管理するだろう
自分自身のプロセスを制御したいなら当然後者だわな
何が問題?
プロセス制御って?
Windowsの他のプロセスを制御したいならWSLからWindowsのコマンドを呼べばいいし、
Linuxのプロセスなら当然UNIXの世界で管理するだろう
自分自身のプロセスを制御したいなら当然後者だわな
何が問題?
345デフォルトの名無しさん
2021/06/03(木) 09:41:56.32ID:CA79M4bt UNIXの世界
346デフォルトの名無しさん
2021/06/04(金) 06:21:24.37ID:q/6JXt/b プロンプトからのffmpegの実行で引数として -metadata に指定する値に空白とエスケープシーケンスを含めたく
¥"abc`n def¥"
でできましたが、更に " を含めるにはどうすればいいでしょうか?
"" や `" は駄目でした
¥"abc`n def¥"
でできましたが、更に " を含めるにはどうすればいいでしょうか?
"" や `" は駄目でした
347デフォルトの名無しさん
2021/06/04(金) 08:07:53.84ID:d2fkafbJ >write-output "abc`n `"`"def `n`""
abc
""def""
ネイティブアプリ例
>gc ~/bin/args
#!/bin/sh
printf "%d args:" $#; printf " <%s>" "$@"
>args "abc`n `"`"def `n`""
1 args: <abc
""def"">
期待通りでは?
cmd用に書かれたものには、独自のパースをするものがあるので(悪名高いのはruby等)、もしかしたらそれでは?
abc
""def""
ネイティブアプリ例
>gc ~/bin/args
#!/bin/sh
printf "%d args:" $#; printf " <%s>" "$@"
>args "abc`n `"`"def `n`""
1 args: <abc
""def"">
期待通りでは?
cmd用に書かれたものには、独自のパースをするものがあるので(悪名高いのはruby等)、もしかしたらそれでは?
348デフォルトの名無しさん
2021/06/04(金) 08:16:32.83ID:d2fkafbJ もしかして、こういうことか
>args "`"abc`n def"`" sanitycheck
2 args: <"abc
def"> <sanitycheck>
>args "`"abc`n def"`" sanitycheck
2 args: <"abc
def"> <sanitycheck>
349デフォルトの名無しさん
2021/06/04(金) 08:25:48.17ID:d2fkafbJ ごめんレスを読み違えてたかも
エスケープシーケンスを渡したい、のなら、ffmpegのエスケープシーケンスを調べて渡すべき
上に挙げた例は「生の」空白と改行と"を、pwshのエスケープシーケンスを用いて渡す、という例
エスケープシーケンスを渡したい、のなら、ffmpegのエスケープシーケンスを調べて渡すべき
上に挙げた例は「生の」空白と改行と"を、pwshのエスケープシーケンスを用いて渡す、という例
350デフォルトの名無しさん
2021/06/04(金) 08:43:46.19ID:d2fkafbJ winでは所謂c風のargvを使わない、シェルのパースを無視し、コマンドラインを文字列として取得する事、が可能
>>343
コマンドラインの> NULをプログラム側でアドホックに認識して、出力を止める手法が横行した
展開前の環境変数名をエスパーしたりも
cmdで> NULが動く事が多いのもこれ
>>343
コマンドラインの> NULをプログラム側でアドホックに認識して、出力を止める手法が横行した
展開前の環境変数名をエスパーしたりも
cmdで> NULが動く事が多いのもこれ
351デフォルトの名無しさん
2021/06/04(金) 08:53:40.98ID:d2fkafbJ そして\はpwshのエスケープシーケンスではなく、winのエスケープシーケンスだ>>346
352デフォルトの名無しさん
2021/06/04(金) 09:45:00.85ID:d2fkafbJ \"bc\" 文字列 \ + bc\ = \bc\
a"ba" が文字列abaなのと同じ
a"ba"a" は閉じてない文字列
a"ba" が文字列abaなのと同じ
a"ba"a" は閉じてない文字列
353デフォルトの名無しさん
2021/06/04(金) 10:00:36.23ID:IHTmGKSa え、コマンドプロンプトのエスケープシーケンスと、それが解釈された後のPSのエスケープシーケンスを2重に考えて引数を渡しなさいよってオチじゃないの?
354デフォルトの名無しさん
2021/06/04(金) 10:18:52.38ID:d2fkafbJ cmdと直接の関係はないよ
とりあえず
"\abc改行文字 \"
という文字列をpwshは渡すはずだけど
環境も意図した書式も不明だし、フィードバック無しに詮索はやめとこう
とりあえず
"\abc改行文字 \"
という文字列をpwshは渡すはずだけど
環境も意図した書式も不明だし、フィードバック無しに詮索はやめとこう
355デフォルトの名無しさん
2021/06/04(金) 10:20:17.19ID:d2fkafbJ \abc改行 def\だねごめん
356デフォルトの名無しさん
2021/06/04(金) 10:38:55.66ID:WP3FEn4a cmd関係なくwindowsだと\はStartProcessコールのエスケープ文字だしな
システムコール自体やcmdに食われるの想定して、余分に付け足したりするプログラムが多いので複雑怪奇になる
そんなwindowsプロセスにも賢く渡す機能が7.2以降に付きそうだけど、これでまたアドホックな要素がまた一つ増える…
システムコール自体やcmdに食われるの想定して、余分に付け足したりするプログラムが多いので複雑怪奇になる
そんなwindowsプロセスにも賢く渡す機能が7.2以降に付きそうだけど、これでまたアドホックな要素がまた一つ増える…
357デフォルトの名無しさん
2021/06/04(金) 11:31:36.60ID:WP3FEn4a358デフォルトの名無しさん
2021/06/06(日) 16:31:42.58ID:MKTuQ6ZL わかりにくいなら配列$argsにまとめて渡したり' 'で括って_などをreplaceがいいかも
クオートが続くと''→'、""→"となるcmdっぽい例外は抹消してほしい
クオートされた文字列とされてない文字列は併置で連接されるけど、例外になってしまう
クオートが続くと''→'、""→"となるcmdっぽい例外は抹消してほしい
クオートされた文字列とされてない文字列は併置で連接されるけど、例外になってしまう
359デフォルトの名無しさん
2021/06/06(日) 16:38:11.80ID:MKTuQ6ZL 最後の引数に限るけど、--%で以降のパースを全て止めてしまうのも便利
単語分割もされない
単語分割もされない
360デフォルトの名無しさん
2021/06/06(日) 16:59:25.93ID:I2RNTewS 文字列メソッド使うのが一番頭使わなくて良い
361デフォルトの名無しさん
2021/06/06(日) 19:16:20.18ID:OPfMT94L362デフォルトの名無しさん
2021/06/11(金) 08:48:29.09ID:nMyRbz+O PowerCLIの話ってここでいいのかな
モジュールコマンドレットの引数ってとう調べればいいんだろ
モジュールコマンドレットの引数ってとう調べればいいんだろ
363デフォルトの名無しさん
2021/06/11(金) 17:03:16.40ID:iy4yRVw6 すんません自己解決です。
Module内のpsm1ファイルとかにありました。
Module内のpsm1ファイルとかにありました。
364デフォルトの名無しさん
2021/06/15(火) 11:09:45.95ID:vhbon9Jn スクリプト、シェル関数、フィルター、モジュール等々
コメントや引数からのヘルプ生成いいよね、(MSサイトのアヤシイ自動翻訳と比べれば)割と読める
ghできてびっくりした
コメントや引数からのヘルプ生成いいよね、(MSサイトのアヤシイ自動翻訳と比べれば)割と読める
ghできてびっくりした
365デフォルトの名無しさん
2021/06/15(火) 22:37:29.05ID:sMCwQ3p2 powershellなかったらWindows10嫌いになってた
まあ嫌いだけど
まあ嫌いだけど
366デフォルトの名無しさん
2021/06/15(火) 23:16:19.96ID:tENeeutP 昔からあるがな
367デフォルトの名無しさん
2021/06/16(水) 08:41:42.53ID:tdb40TiY スマホでPowerShell使いたい人っているの?
Distribution Support Request: PowerShell for Android
https://github.com/PowerShell/PowerShell/issues/15556
Distribution Support Request: PowerShell for iOS
https://github.com/PowerShell/PowerShell/issues/15563
Distribution Support Request: PowerShell for Android
https://github.com/PowerShell/PowerShell/issues/15556
Distribution Support Request: PowerShell for iOS
https://github.com/PowerShell/PowerShell/issues/15563
368デフォルトの名無しさん
2021/06/16(水) 08:50:31.44ID:drc75L4c ぶっちゃけplaystoreで何回も検索してるけど引っかからなくて悲しんでる
about_*をブラウザで読んでた方が百倍マシな紙芝居チュートリアルみたいのは存在してる(検索ノイズ)
アンドロの採用してるmkshへのインターフェイス提供するアプリは、個人投稿ぽいのがいっぱい出てくるんだけども…
about_*をブラウザで読んでた方が百倍マシな紙芝居チュートリアルみたいのは存在してる(検索ノイズ)
アンドロの採用してるmkshへのインターフェイス提供するアプリは、個人投稿ぽいのがいっぱい出てくるんだけども…
369デフォルトの名無しさん
2021/06/16(水) 08:54:13.04ID:drc75L4c 携帯端末で特に何がしたいって訳でもないけど、思い付きのアイデアを手軽にインタプリタで検証したい時は割とある
野良でもいいけど、公式から出るんならなおさら嬉しい
野良でもいいけど、公式から出るんならなおさら嬉しい
370デフォルトの名無しさん
2021/06/16(水) 09:09:48.51ID:drc75L4c 色々電卓代わりのインタプリタ試したけど、今のところgforthが最良
ソフトキーボードと喧嘩しないし、pc版と同じヘルプ補完を提供してるいいもの
ただ言語コアが小さいので、そのままでは四則くらいしかできない
一般的な言語は()を行き戻りするのが辛い、数学関数揃ってるRPN/コマンド言語が求められる
[math]::funcとか手軽に引けるだろうことは嬉しい
RPN言語側での候補は数学関数揃ってるpost/ghostscriptだけど、これもrepl移植が見つからない、悲しい
ソフトキーボードと喧嘩しないし、pc版と同じヘルプ補完を提供してるいいもの
ただ言語コアが小さいので、そのままでは四則くらいしかできない
一般的な言語は()を行き戻りするのが辛い、数学関数揃ってるRPN/コマンド言語が求められる
[math]::funcとか手軽に引けるだろうことは嬉しい
RPN言語側での候補は数学関数揃ってるpost/ghostscriptだけど、これもrepl移植が見つからない、悲しい
371デフォルトの名無しさん
2021/06/16(水) 09:22:11.80ID:drc75L4c 式を置き去り(最初のワードがコマンドでない場合)にしたら勝手に評価して表示してくれるのもいいね
10Kをintと解釈してくれるような、かわいい機能群も生きそう
スマホ関数電卓界のホープになれる
10Kをintと解釈してくれるような、かわいい機能群も生きそう
スマホ関数電卓界のホープになれる
372デフォルトの名無しさん
2021/06/16(水) 09:32:04.79ID:XFhGw2Fv (mk?)shへの対話モードはAndroidのネイティブシェルだから、ガワ被せるだけの野良実装が多いのは理解できるんだけど
入力が不便なスマホで一体何に使うのな気になってる、やけにダウンロード数多いし
マゾいexprで電卓したり、まさかスクリプティングするわけでもなかろうに
入力が不便なスマホで一体何に使うのな気になってる、やけにダウンロード数多いし
マゾいexprで電卓したり、まさかスクリプティングするわけでもなかろうに
373デフォルトの名無しさん
2021/06/16(水) 10:03:11.27ID:drc75L4c unixの伝統的な外部コマンドはアンドロイドにはあんまり入ってなかったはず
別途入れるかバンドルされてるのを探すかしなければならないけど、bcやimagemagikを(多分)叩けるのは有意義だと思う
まあそれ以外の用途は浮かばないけど、広告まみれの電卓/画像変換アプリ使うよりはずっと良さそう
ちょっと試してみるかな
別途入れるかバンドルされてるのを探すかしなければならないけど、bcやimagemagikを(多分)叩けるのは有意義だと思う
まあそれ以外の用途は浮かばないけど、広告まみれの電卓/画像変換アプリ使うよりはずっと良さそう
ちょっと試してみるかな
374デフォルトの名無しさん
2021/06/16(水) 10:39:58.25ID:4tVAxrDR 携帯端末でshを使う需要でとりあえず思いつくのは
httpクライアントでエロ画像根こそぎ落としたり
出先からPCやサーバが仕事してるかsshクライアントで確認&ジョブ投げたり?
とりあえずロートルでも単純なコマンドさえ発行できれば十分なのでは
pwsh(android/ios)にはそれ以上を期待したいけど
httpクライアントでエロ画像根こそぎ落としたり
出先からPCやサーバが仕事してるかsshクライアントで確認&ジョブ投げたり?
とりあえずロートルでも単純なコマンドさえ発行できれば十分なのでは
pwsh(android/ios)にはそれ以上を期待したいけど
375デフォルトの名無しさん
2021/06/16(水) 11:36:53.15ID:drc75L4c 携帯デバイス上のsshデフォルトシェルに便利な気がする
動的に画面に合わせたビューが提供できるのが活きそう
確かにソフトキーで一行コマンド送るならshを設定しても大して変わらないけど、
大きいディスプレイ向けにハードコードされたunix/winコマンドの出力なんてスマホやタブで読めたもんじゃない
逆にデフォルトで簡潔なビュー(.ps1xml)が同梱されないなら、多分俺は電卓としてしか使わないわ
動的に画面に合わせたビューが提供できるのが活きそう
確かにソフトキーで一行コマンド送るならshを設定しても大して変わらないけど、
大きいディスプレイ向けにハードコードされたunix/winコマンドの出力なんてスマホやタブで読めたもんじゃない
逆にデフォルトで簡潔なビュー(.ps1xml)が同梱されないなら、多分俺は電卓としてしか使わないわ
376デフォルトの名無しさん
2021/06/16(水) 11:39:42.68ID:MMsGiHbd377デフォルトの名無しさん
2021/06/16(水) 12:11:49.40ID:1tyDQMTR .netアプリなんてapple/play storeに溢れてるのでは?
と思ってたらこれ、ランタイム方式じゃないのね…
iOS/Androidの.net(monoやxamarin)は、必要なコードだけ抽出し.apk等にコンパイルされているようで
粗末な出来なのに~50MBくらいある奴が典型的
明らかにxamarin, monoのランタイム(~100MB以下)を共有した方が経済的だと思うんだけど、何か大人の事情があるのだろうか
と思ってたらこれ、ランタイム方式じゃないのね…
iOS/Androidの.net(monoやxamarin)は、必要なコードだけ抽出し.apk等にコンパイルされているようで
粗末な出来なのに~50MBくらいある奴が典型的
明らかにxamarin, monoのランタイム(~100MB以下)を共有した方が経済的だと思うんだけど、何か大人の事情があるのだろうか
378デフォルトの名無しさん
2021/06/16(水) 12:16:49.70ID:iyOIJAkk 別にスマホのシス管するわけでもなし、xamarinやmonoから必要なAPI引いて自己完結なポートでもいいと思うけどね
379デフォルトの名無しさん
2021/06/16(水) 12:37:37.60ID:drc75L4c >>367
5日放置かー、あんまり興味ないのかね
モバイル疎いのでmono, xamarinはよく分からんけど、とりあえず.net coreもiOS, Androidサポートしてるようす
https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md
.net実装少なくなったね
monoもxamarinも買収で半分MS公式だし、コードベースもほぼほぼ共有しちゃってるし
野良実装がわらわら溢れてた時期は、これからは.netという安心感があったなぁ
5日放置かー、あんまり興味ないのかね
モバイル疎いのでmono, xamarinはよく分からんけど、とりあえず.net coreもiOS, Androidサポートしてるようす
https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md
.net実装少なくなったね
monoもxamarinも買収で半分MS公式だし、コードベースもほぼほぼ共有しちゃってるし
野良実装がわらわら溢れてた時期は、これからは.netという安心感があったなぁ
380デフォルトの名無しさん
2021/06/16(水) 12:38:42.86ID:drc75L4c asp coreわすれてた
381デフォルトの名無しさん
2021/06/16(水) 12:42:45.75ID:McZtCmJH 実用性よりもCore系なら移植性抜群ですよっていうデモ的な意味合いが大きい気がする
382デフォルトの名無しさん
2021/06/16(水) 12:49:41.03ID:drc75L4c そうだね、ぶっちゃけ知らなかったし
一応遊んでみようと思う
一応遊んでみようと思う
383デフォルトの名無しさん
2021/06/16(水) 13:00:48.00ID:V4BV8dHx MS公式、準公式で少なくとも4つ実装がある意義とは
野良実装の存在は健全な発展に必須だろうに、なぜ淘汰してしまったのか
野良実装の存在は健全な発展に必須だろうに、なぜ淘汰してしまったのか
384デフォルトの名無しさん
2021/06/16(水) 13:59:07.75ID:MMsGiHbd スマホにドトネトて、既にあるラッパーのラッパーを作ることに相当するよね
スマホのアップデートなんて限定的だし定期的に買い換えても機種が違えば中身もゴッソリ変ってるし
どうせroot化でもしない限り大した事できないしあんま深く知りたいわけでもない
automateみたいな事が普通にできれば十分かな
スマホのアップデートなんて限定的だし定期的に買い換えても機種が違えば中身もゴッソリ変ってるし
どうせroot化でもしない限り大した事できないしあんま深く知りたいわけでもない
automateみたいな事が普通にできれば十分かな
385デフォルトの名無しさん
2021/06/16(水) 14:59:31.40ID:mh5WwISX なんでスマホでやらなあかんねん
という部分がまずクリアできない
という部分がまずクリアできない
386デフォルトの名無しさん
2021/06/16(水) 15:07:02.37ID:drc75L4c ちょっと気付くの遅いけど、まだスレで言及されてないようなので
8 Apr commit
" Vim filetype plugin file
" Language: Windows PowerShell
https://github.com/vim/vim/blob/master/runtime/ftplugin/ps1.vim
https://github.com/vim/vim/blob/master/runtime/syntax/ps1.vim
etc
まあ俺が使ってたhttps://github.com/PProvost/vim-ps1を公式がマージしただけなんだが
やはり嬉しいものだ
8 Apr commit
" Vim filetype plugin file
" Language: Windows PowerShell
https://github.com/vim/vim/blob/master/runtime/ftplugin/ps1.vim
https://github.com/vim/vim/blob/master/runtime/syntax/ps1.vim
etc
まあ俺が使ってたhttps://github.com/PProvost/vim-ps1を公式がマージしただけなんだが
やはり嬉しいものだ
387デフォルトの名無しさん
2021/06/16(水) 15:23:11.73ID:drc75L4c 本当に最低限のサポートだけど
vimの補完関数に外部コマンドとしてpsreadlineの晒してるAPIを指定するだけで、replと同等の編集ができるよ
(about_PSReadlineとかそんな感じの参照)
vimの補完関数に外部コマンドとしてpsreadlineの晒してるAPIを指定するだけで、replと同等の編集ができるよ
(about_PSReadlineとかそんな感じの参照)
388デフォルトの名無しさん
2021/06/16(水) 16:01:42.73ID:OMTSZTs5 MSのサイトでPowerShellのlsp書式(VSCodeのプラグイン形式)公開してるから、vimのlspサーバ付きビルドなら標準でVSCode同等機能で書けるよ
PSReadlineのバックエンドも多分これだし、間接的には同じことかも?
あくまでライン編集用なので、まだ保存してない定義参照など文脈読むのはvim担当になる
ただしパスにカレントディレクトリを加えておけば、保存した時点でのパラメータ等はPSReadlineが勝手に読んで候補に加えてくれるから、暗黙のうちに候補に加わる
ちょっと複雑だな
もしかするとロースペックだとラグいかも
外部呼び出しはブロックするし、キャッシュの存在し得ないファイル(現在編集中)を読むので…
何もインストールしなくていい手軽さと、自動でget-helpする小窓を常時表示したり、カスタマイズ性の高いvimからPSReadlineを呼びだしを推したい
PSReadlineのバックエンドも多分これだし、間接的には同じことかも?
あくまでライン編集用なので、まだ保存してない定義参照など文脈読むのはvim担当になる
ただしパスにカレントディレクトリを加えておけば、保存した時点でのパラメータ等はPSReadlineが勝手に読んで候補に加えてくれるから、暗黙のうちに候補に加わる
ちょっと複雑だな
もしかするとロースペックだとラグいかも
外部呼び出しはブロックするし、キャッシュの存在し得ないファイル(現在編集中)を読むので…
何もインストールしなくていい手軽さと、自動でget-helpする小窓を常時表示したり、カスタマイズ性の高いvimからPSReadlineを呼びだしを推したい
389デフォルトの名無しさん
2021/06/16(水) 19:31:22.10ID:VY79GhSm ブラックボックスなプラグインをぶちこむ
うごけばいいんだよ
うごけばいいんだよ
390デフォルトの名無しさん
2021/06/17(木) 08:03:45.47ID:dBxnMxux Preview updating PowerShell 7.2 with Microsoft Update
https://devblogs.microsoft.com/powershell/preview-updating-powershell-7-2-with-microsoft-update/
https://devblogs.microsoft.com/powershell/preview-updating-powershell-7-2-with-microsoft-update/
391デフォルトの名無しさん
2021/06/20(日) 23:45:59.70ID:x08lLT64 2exeが仕事で役に立ったわ
exeじゃないとアイコン設定できなかったりするから必須機能だな
exeじゃないとアイコン設定できなかったりするから必須機能だな
392デフォルトの名無しさん
2021/06/21(月) 19:28:55.69ID:zJyyyGxF 7.2に上げたついでにinstall-module PSReadline -AllowPreview -force的な事したらコケたわ(2.2
replに入るとPSReadlineが死ぬ
レポジトリの会話見ると7.2で結構変更あるのでまだ2.2で対応してないと
pwsh -noni -nop -c '&{uninstall-module PSReadline}'的なのをcmdから打ってちゃんと最新が消えて2.1にロールバック、問題なし
迂闊なアップデきよつける
replに入るとPSReadlineが死ぬ
レポジトリの会話見ると7.2で結構変更あるのでまだ2.2で対応してないと
pwsh -noni -nop -c '&{uninstall-module PSReadline}'的なのをcmdから打ってちゃんと最新が消えて2.1にロールバック、問題なし
迂闊なアップデきよつける
393デフォルトの名無しさん
2021/06/21(月) 22:13:51.12ID:zJyyyGxF >>390
Windows Updateに乗(せられ)るのね、ちょうど上の方で話題になっててタイムリー?
Windows Updateに乗(せられ)るのね、ちょうど上の方で話題になっててタイムリー?
394デフォルトの名無しさん
2021/06/22(火) 11:36:31.82ID:pmPJw99A >>357
-[not]match, -[e|c]replace の右辺(パターン)も`にして欲しかったわ
winのパスの'path\to\somewhere'がめんどくさい
[regex]::escape メソッドが用意されてるけど、メタ文字っぽいの全部エスケープしちゃうので
先頭アンカーの^をメタ文字にするときは
'^' + escape('path\to\somewhere')
なんか汚い…
.もパスによく出てくるので面倒
いい書き方ないかな?
-[not]match, -[e|c]replace の右辺(パターン)も`にして欲しかったわ
winのパスの'path\to\somewhere'がめんどくさい
[regex]::escape メソッドが用意されてるけど、メタ文字っぽいの全部エスケープしちゃうので
先頭アンカーの^をメタ文字にするときは
'^' + escape('path\to\somewhere')
なんか汚い…
.もパスによく出てくるので面倒
いい書き方ないかな?
395デフォルトの名無しさん
2021/06/22(火) 14:32:20.14ID:dyR+eSpW pwshからドトネトも学ぼうとsdk入れたら500MBも吸われてしまった…
F#を恥ずかしながら知らなかったんだかど、MLとC#を悪魔合体したみたいで面白いねこれ
ps1内でおもむろに
Add-Type ... @'
F#スニペット
'@
と書いてすぐ走る利便性すごい
けどやっぱりsdkがでかい…
複数言語の処理系入ってると思えばでかくないかもしれないけど
でかい
F#を恥ずかしながら知らなかったんだかど、MLとC#を悪魔合体したみたいで面白いねこれ
ps1内でおもむろに
Add-Type ... @'
F#スニペット
'@
と書いてすぐ走る利便性すごい
けどやっぱりsdkがでかい…
複数言語の処理系入ってると思えばでかくないかもしれないけど
でかい
396デフォルトの名無しさん
2021/06/22(火) 14:51:05.02ID:xDMJNZcH ヒアストリングはエディタに文字列扱いされてハイライトも補完も効かないので分けてGet-Contentしてる
ソラで書ける程度ならいいけど
ソラで書ける程度ならいいけど
397デフォルトの名無しさん
2021/06/22(火) 17:18:07.98ID:WY3z1yEU いいと思うよ
大体の人は1ファイルに収めたいからヒアドキュメント使うわけで
大体の人は1ファイルに収めたいからヒアドキュメント使うわけで
398デフォルトの名無しさん
2021/06/22(火) 18:07:25.83ID:RxGUKVcL >>395
F#登場時に『OCamlを参考にした』ってよく紹介されてて、それで初めてMLの存在を知ったわ
F#走らせるだけならSDKまでいれなくてもF#のランタイムだけで動作するはず
pwshオンリーの環境で試したこと無いから、だめかもしれんけど
でも、add-typeしてF#動かせるならf#スクリプトも動くと思うんでpwsh経由にする必要ないんでわ?
F#登場時に『OCamlを参考にした』ってよく紹介されてて、それで初めてMLの存在を知ったわ
F#走らせるだけならSDKまでいれなくてもF#のランタイムだけで動作するはず
pwshオンリーの環境で試したこと無いから、だめかもしれんけど
でも、add-typeしてF#動かせるならf#スクリプトも動くと思うんでpwsh経由にする必要ないんでわ?
399デフォルトの名無しさん
2021/06/22(火) 19:04:57.19ID:pmPJw99A F#は見た目キレイなocamlで好きだよ、;で諦めた
インラインは読み込み時に都度メモリ上にコンパイルするので、初読み込み時のオーバーヘッドはあるかと
まあdllやら作り直すより楽なので、困るまではインラインでいい
なんなら@"で文字列補間できるしな
インラインは読み込み時に都度メモリ上にコンパイルするので、初読み込み時のオーバーヘッドはあるかと
まあdllやら作り直すより楽なので、困るまではインラインでいい
なんなら@"で文字列補間できるしな
400デフォルトの名無しさん
2021/06/22(火) 19:55:16.74ID:G2b0CX3R 遊ぶくらいだけど困ったらpwshで生やせるメンバをニョキっとできるしな
公式サイト見るとdiscouraged styleだけど
ドマイナー言語だけど入門にはちょうどいいかも
公式サイト見るとdiscouraged styleだけど
ドマイナー言語だけど入門にはちょうどいいかも
401デフォルトの名無しさん
2021/06/25(金) 14:50:04.75ID:yduSg49I 今のところPowerShell7+をWindows11に標準搭載する予定はない
.NETのサポート期間の短さが問題になっている
https://twitter.com/natiTDD/status/1408114326137982986
https://twitter.com/Steve_MSFT/status/1408135314464378883
https://twitter.com/5chan_nel (5ch newer account)
.NETのサポート期間の短さが問題になっている
https://twitter.com/natiTDD/status/1408114326137982986
https://twitter.com/Steve_MSFT/status/1408135314464378883
https://twitter.com/5chan_nel (5ch newer account)
402デフォルトの名無しさん
2021/06/25(金) 16:13:53.08ID:X/DsUG+x some ideasとはなんぞ。
403デフォルトの名無しさん
2021/06/25(金) 17:07:37.16ID:czBKz/U/ >>402
期待したい
期待したい
404デフォルトの名無しさん
2021/06/25(金) 20:51:38.19ID:DaFL93KC function ConvertTo-Hoge($source) {
Write-Output '次のファイルたちに対して処理を実行します。'
Get-ChildItem -Path $source -Recurse
# 外部コマンドによる処理。
hoge.exe $source
}
ConvertTo-Hoge 'c:\data\source.txt'
上記のコード内のGet-ChildItemで取得されるのは、引数として指定した
c:\data\source.txt
だけと想定していましたが、実際は、
c:\data\SUB_FOLDER\source.txt
といったサブディレクトリ内の同名ファイルも取得されてしまいます。
ファイルを指定した場合は-Recurseパラメータが無視されると勝手に思い込んでいたので、
こういうかたちで再帰的な取得をするのは面食らいました。
ファイルを指定した場合に再帰取得を抑制する方法はないでしょうか。
'c:\data\' や 'c:\data\*' といったパスを渡すケースもあるので
-Recurseパラメータを外したり、-Pathを-LiteralPathに換えるわけにはいかないです。
Write-Output '次のファイルたちに対して処理を実行します。'
Get-ChildItem -Path $source -Recurse
# 外部コマンドによる処理。
hoge.exe $source
}
ConvertTo-Hoge 'c:\data\source.txt'
上記のコード内のGet-ChildItemで取得されるのは、引数として指定した
c:\data\source.txt
だけと想定していましたが、実際は、
c:\data\SUB_FOLDER\source.txt
といったサブディレクトリ内の同名ファイルも取得されてしまいます。
ファイルを指定した場合は-Recurseパラメータが無視されると勝手に思い込んでいたので、
こういうかたちで再帰的な取得をするのは面食らいました。
ファイルを指定した場合に再帰取得を抑制する方法はないでしょうか。
'c:\data\' や 'c:\data\*' といったパスを渡すケースもあるので
-Recurseパラメータを外したり、-Pathを-LiteralPathに換えるわけにはいかないです。
405デフォルトの名無しさん
2021/06/25(金) 21:15:44.26ID:RnIW6d/1 Powershellのコマンドレットにはあまり期待するな
406デフォルトの名無しさん
2021/06/25(金) 22:33:40.40ID:gHkCbSTz >>404
当たり前でしょ
c:\data\source.txt がファイルかどうかは調べるまでわからないんだし
そもそもc:\data\source.txtがなくてc:\data\SUB_FOLDER\source.txtがあるならc:\data\SUB_FOLDER\source.txtは欲しいんでしょ?
> ファイルを指定した場合に再帰取得を抑制する方法はないでしょうか。
指定したのがファイルなら-Recurse外せばいいだけじゃないの?
当たり前でしょ
c:\data\source.txt がファイルかどうかは調べるまでわからないんだし
そもそもc:\data\source.txtがなくてc:\data\SUB_FOLDER\source.txtがあるならc:\data\SUB_FOLDER\source.txtは欲しいんでしょ?
> ファイルを指定した場合に再帰取得を抑制する方法はないでしょうか。
指定したのがファイルなら-Recurse外せばいいだけじゃないの?
407デフォルトの名無しさん
2021/06/25(金) 23:34:28.71ID:DaFL93KC408デフォルトの名無しさん
2021/06/26(土) 04:19:56.86ID:SGwHfoMZ Get-ChildItemのオプションは沢山あるからよく調べて除外指定すりゃいいし
パイプでWhere-Objectに渡して要らないのをフィルタするという手もある
パイプでWhere-Objectに渡して要らないのをフィルタするという手もある
409デフォルトの名無しさん
2021/06/26(土) 08:07:50.32ID:PnU/npNW $a = @(Get-ChildItem -Path $source -Recurse)
$target = if ( $a[0].Name -eq $source ) { $a[0] } else { $a }
するぐらいかなぁ
要件満たせてるのかわかんないけど
$target = if ( $a[0].Name -eq $source ) { $a[0] } else { $a }
するぐらいかなぁ
要件満たせてるのかわかんないけど
410デフォルトの名無しさん
2021/06/26(土) 08:10:50.49ID:W7G/Wq0v Get-ChildItemのオプションで除外するかWhere-Objectでフィルタか
両者にはどんな得意不得意があるの?
両者にはどんな得意不得意があるの?
411404
2021/06/26(土) 10:25:46.45ID:hFKbHeBr412デフォルトの名無しさん
2021/06/26(土) 10:58:10.50ID:XYwUNHu1 >>411
こんな感じでよくない?
Get-ChildItem -Path $source -Recurse:(Test-Path $source -PathType Container)
hoge.exe の仕様にもよるけれど、-File とかも指定しないと変かも。
こんな感じでよくない?
Get-ChildItem -Path $source -Recurse:(Test-Path $source -PathType Container)
hoge.exe の仕様にもよるけれど、-File とかも指定しないと変かも。
413404
2021/06/26(土) 11:51:34.42ID:hFKbHeBr414デフォルトの名無しさん
2021/06/26(土) 14:42:37.37ID:+oUd2Rws >>412
$sourceにワイルドカード含まれてたら意図した動作にならないかと思ったけど、そんなことない?
$sourceにワイルドカード含まれてたら意図した動作にならないかと思ったけど、そんなことない?
415デフォルトの名無しさん
2021/06/26(土) 17:37:56.83ID:+oUd2Rws >>411
ワイルドカードが含まれない場合でもフォルダー指定ならrecurseが必要なんじゃない?
ワイルドカードが含まれない場合でもフォルダー指定ならrecurseが必要なんじゃない?
416デフォルトの名無しさん
2021/06/26(土) 18:15:40.91ID:SGwHfoMZ そもそも >>404 で無条件にgciに渡してるとこからおかしいと思う
1. まず$sourceにワイルドカード文字が入ってるかどうかを判定する $source -match "[\*\?]"
2. 次にディレクトリ指定かを判定する Test-Path $source -PathType Container
3. そうでないならファイル指定かを判定 Test-Path $source -PathType Leaf
4. これ以外はエラーとする
1と2のケースならgciに掛けて除外したいものをWhere-Objectでフィルタしながら処理する
gci $source -recurse | ?{ $_.FullName -notlike "*SUB_FOLDER*" } | %{ hoge.exe $_.FullName }
3ならそのまま処理する hoge.exe $source
自分ならこんな感じで書くかな
1. まず$sourceにワイルドカード文字が入ってるかどうかを判定する $source -match "[\*\?]"
2. 次にディレクトリ指定かを判定する Test-Path $source -PathType Container
3. そうでないならファイル指定かを判定 Test-Path $source -PathType Leaf
4. これ以外はエラーとする
1と2のケースならgciに掛けて除外したいものをWhere-Objectでフィルタしながら処理する
gci $source -recurse | ?{ $_.FullName -notlike "*SUB_FOLDER*" } | %{ hoge.exe $_.FullName }
3ならそのまま処理する hoge.exe $source
自分ならこんな感じで書くかな
417404
2021/06/26(土) 18:28:02.03ID:hFKbHeBr >>416
そうですね・・・。
*(ワイルドカード)の有無で分岐する場合は、
Get-ChildItem -Path $source -Recurse #ワイルドカードあり
と
Get-ChildItem -LiteralPath $source -Recurse #ワイルドカードなし
というふうに両方に-Recurseをつければいいと思いますが、
-Recurseをオフにしちゃうとたぶん想定と違う挙動になりますね・・・。
実際のコードで検証してみます。
ありがとうございます。
そうですね・・・。
*(ワイルドカード)の有無で分岐する場合は、
Get-ChildItem -Path $source -Recurse #ワイルドカードあり
と
Get-ChildItem -LiteralPath $source -Recurse #ワイルドカードなし
というふうに両方に-Recurseをつければいいと思いますが、
-Recurseをオフにしちゃうとたぶん想定と違う挙動になりますね・・・。
実際のコードで検証してみます。
ありがとうございます。
418404
2021/06/26(土) 18:42:17.36ID:hFKbHeBr419デフォルトの名無しさん
2021/06/26(土) 19:19:36.00ID:+oUd2Rws 409ので最初のgciにfileオプション付けたらやりたいことできてない?
420404
2021/06/26(土) 20:40:31.67ID:hFKbHeBr >>419
自宅のPCでやってみたらうまく行かなかったですが(再帰的に取得されてしまう)、
うろ覚えの再現をして何か間違っているかもしれないので、週明けに実際のコードで試してみます。
ありがとうございます。
自宅のPCでやってみたらうまく行かなかったですが(再帰的に取得されてしまう)、
うろ覚えの再現をして何か間違っているかもしれないので、週明けに実際のコードで試してみます。
ありがとうございます。
421409
2021/06/27(日) 00:14:38.21ID:3ZU8XSDE $sourceがファイル名でなくパス指定だとうまくいかないので
$a = @(Get-ChildItem $source -Recurse -File)
$target = if ( $a[0].Name -eq (Split-Path $source -Leaf) ) { $a[0] } else { $a }
とすべきでした
$a = @(Get-ChildItem $source -Recurse -File)
$target = if ( $a[0].Name -eq (Split-Path $source -Leaf) ) { $a[0] } else { $a }
とすべきでした
422デフォルトの名無しさん
2021/06/27(日) 17:52:13.26ID:CXPSOiIf .ps1スクリプトをタスクバーにピン留めして実行たいのですが皆さんどうしてますか
423デフォルトの名無しさん
2021/06/27(日) 18:59:55.50ID:4zcgZlyh ファイラー使ってるなぁ
424デフォルトの名無しさん
2021/06/27(日) 19:52:40.86ID:VoyuuGop >>422
引数付きのpowershell.exeショートカット作ってピン留めしたら?
引数付きのpowershell.exeショートカット作ってピン留めしたら?
425デフォルトの名無しさん
2021/06/27(日) 20:14:26.80ID:tkVDl+qA 漏れは、デスクトップにショートカットを作る
例えば、WSL2, Ubuntu 18.04 を起動して、
作業フォルダを、Linux 側にあるプロジェクトフォルダに移動してから、
VSCode で、そこを開く
リンク先
C:\Windows\System32\wsl.exe code .
作業フォルダ
\\wsl$\Ubuntu-18.04\home\ユーザー名\proj01
例えば、WSL2, Ubuntu 18.04 を起動して、
作業フォルダを、Linux 側にあるプロジェクトフォルダに移動してから、
VSCode で、そこを開く
リンク先
C:\Windows\System32\wsl.exe code .
作業フォルダ
\\wsl$\Ubuntu-18.04\home\ユーザー名\proj01
426422
2021/06/28(月) 20:14:33.38ID:3DnBzo4y427デフォルトの名無しさん
2021/07/05(月) 19:41:53.00ID:7JzKdw7c Windows11入れたけど、PowerShellのバージョンが7.0.0-preview.3になってる
5.1も5.1.22000.1として使える
5.1も5.1.22000.1として使える
428デフォルトの名無しさん
2021/07/05(月) 20:44:48.06ID:jxTbEq2m おー、やっぱOS同梱するんだ
ライフサイクルの違いをどう吸収するのか興味深々
ライフサイクルの違いをどう吸収するのか興味深々
429デフォルトの名無しさん
2021/07/08(木) 20:38:28.01ID:zLx0Zsbg >>387
想像つかない…どんな書き方なのか教えてもらえませんか?
想像つかない…どんな書き方なのか教えてもらえませんか?
430デフォルトの名無しさん
2021/07/09(金) 01:47:38.94ID:iwqakx4X431デフォルトの名無しさん
2021/07/10(土) 15:14:28.43ID:wJrCg/wx こっちの環境だとPowershell7はインストールされてないな
5.1.22000.1はインストールされてるけど
5.1.22000.1はインストールされてるけど
432デフォルトの名無しさん
2021/07/18(日) 10:38:35.13ID:2Hl3gQcn 11出るのかよ
ずっと10でアップデしそうだから安心と思って10のライセンス買ってしまったぞ
ずっと10でアップデしそうだから安心と思って10のライセンス買ってしまったぞ
433デフォルトの名無しさん
2021/07/18(日) 10:47:51.10ID:/77lPQJR 無償アップグレードのはず
434デフォルトの名無しさん
2021/07/18(日) 10:54:20.96ID:YpvM2GEz■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
- んなっしょい🍬禁止🈲のお🏡
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
