前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/
次スレは>>980が立ててね!!
探検
PowerShell -Part 5
■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
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:YpvM2GEz435デフォルトの名無しさん
2021/07/18(日) 20:02:18.33ID:1Kc/AZp0 >>434
正式版は出てないけど
正式版は出てないけど
436デフォルトの名無しさん
2021/07/24(土) 08:32:00.72ID:+h0yrKJy PowerShell始まったな
v7.2.0-preview.8 Release of PowerShell
https://github.com/PowerShell/PowerShell/releases/tag/v7.2.0-preview.8
> Add support to colorize FileInfo file names (#14403)
https://github.com/PowerShell/PowerShell/pull/14403
v7.2.0-preview.8 Release of PowerShell
https://github.com/PowerShell/PowerShell/releases/tag/v7.2.0-preview.8
> Add support to colorize FileInfo file names (#14403)
https://github.com/PowerShell/PowerShell/pull/14403
437デフォルトの名無しさん
2021/07/24(土) 18:02:44.97ID:77oXDTTE 素人ですいません
デバイスとプリンターの中にあるスマホ「sh-08」をBtのアクセスポイント接続させるのは
コマンドラインではどう書けばいいんでしょうか?
デバイスとプリンターの中にあるスマホ「sh-08」をBtのアクセスポイント接続させるのは
コマンドラインではどう書けばいいんでしょうか?
438デフォルトの名無しさん
2021/07/24(土) 18:19:05.10ID:VrPEdYlD Connect-Me sh-08 -Through Bluetooth
439デフォルトの名無しさん
2021/07/24(土) 19:35:50.21ID:pyapQHEM 嘘はいいです
440デフォルトの名無しさん
2021/07/25(日) 08:38:03.39ID:c5+NRcB7 ツッコミどころ満載なリクエストだな
441デフォルトの名無しさん
2021/07/25(日) 14:36:00.14ID:uBtwZZWI Windows PowerShellでBluetoothを接続および削除する方法
https://base64.work/so/powershell/1664979
https://base64.work/so/powershell/1664979
442デフォルトの名無しさん
2021/07/25(日) 14:46:31.15ID:rfVczbW/ ヒントありがとうございます やっぱちょい難しそうですね
443デフォルトの名無しさん
2021/07/25(日) 15:15:38.30ID:AEWDeocZ 昇格されたアクセス許可が必要って時点でもう何か違うような
444デフォルトの名無しさん
2021/07/25(日) 20:56:19.00ID:MU31hGNj get-wmiobjectでインスタンス見つけて接続すりゃいいんだろうけど、PC側からスマホに接続するって、どんな用途なのかな?
スマホ側の写真をPCに転送するぐらいでしかBluetooth使ったことないので、なんか便利なこと出来るなら教えて欲しい
スマホ側の写真をPCに転送するぐらいでしかBluetooth使ったことないので、なんか便利なこと出来るなら教えて欲しい
445437
2021/07/25(日) 22:39:31.80ID:rfVczbW/ 普段の回線だと5ch規制で書けないのでBtテザリングのスマホ回線に切り替えるわけですが
いちいちスマホのアイコンを右クリッタするのが面倒なのでバッチファイルで接続できないかなと
メトリック値の書き換えで回線切り替えるのはできてるんですが
いちいちスマホのアイコンを右クリッタするのが面倒なのでバッチファイルで接続できないかなと
メトリック値の書き換えで回線切り替えるのはできてるんですが
446デフォルトの名無しさん
2021/07/25(日) 23:06:54.56ID:WJtzD90t なるほど
常に接続してるなら静的ルート設定するなりしておけばいいんだろうけど、スマホだとそうもいかないから、書き込むときだけモバイル回線使うようにしたいってことね
常に接続してるなら静的ルート設定するなりしておけばいいんだろうけど、スマホだとそうもいかないから、書き込むときだけモバイル回線使うようにしたいってことね
447デフォルトの名無しさん
2021/07/25(日) 23:22:27.51ID:AEWDeocZ スマホのアイコンの右クリックとかの操作をするだけならシェル名前空間の範囲でできそうだね
$shapp = new-object -com "Shell.Application"
$folder = $shapp.Namespace([System.Environment]::GetFolderPath("desktop"))
foreach ($item in $folder.Items()) {
if ($item.Name -like '*スマホ名*') {
foreach ($Verb in $item.Verbs()) {
if ($Verb.Name -like '*接続とか何とか*') {
$Verb.DoIt();
}
}
}
}
$shapp = new-object -com "Shell.Application"
$folder = $shapp.Namespace([System.Environment]::GetFolderPath("desktop"))
foreach ($item in $folder.Items()) {
if ($item.Name -like '*スマホ名*') {
foreach ($Verb in $item.Verbs()) {
if ($Verb.Name -like '*接続とか何とか*') {
$Verb.DoIt();
}
}
}
}
448デフォルトの名無しさん
2021/07/27(火) 04:10:09.87ID:MxdGAs2p カスタムオブジェクトを返すコマンドレットを作って戻り値を変数に割り当てた時、
変数名の後にメンバーが補完される場合とされない場合があるんだけど何が基準なんだろう?
変数名の後にメンバーが補完される場合とされない場合があるんだけど何が基準なんだろう?
449デフォルトの名無しさん
2021/08/04(水) 01:55:31.71ID:0L18Nxkj >>231
実行ファイル名の変更はマジで影響でかそうだよね。
例えばリモートデスクトップだって実行ファイル名はいまだに大昔の
mstsc(Microsoft Terminal Services Client の略称)のまま変えてないというのに。。
実行ファイル名の変更はマジで影響でかそうだよね。
例えばリモートデスクトップだって実行ファイル名はいまだに大昔の
mstsc(Microsoft Terminal Services Client の略称)のまま変えてないというのに。。
450デフォルトの名無しさん
2021/08/04(水) 08:23:43.34ID:HT9phpQf .NETのサポート期間はLTSでも3年なので、今後もしWindowsに標準で入れるなら3年ごとにWindowsUpdateで破壊的変更が入るという冗談のようなシェルになる
どうせ誰も移行しないんだから問題ないよ
どうせ誰も移行しないんだから問題ないよ
451デフォルトの名無しさん
2021/08/04(水) 09:26:01.56ID:DV/IEEV3 このスレに来るくらいのヘビーユーザー以外は大した移行コストを払うほどスクリプトを書いてないんんじゃね
少なくとも俺が書いたスクリプトは修正した記憶がない
少なくとも俺が書いたスクリプトは修正した記憶がない
452デフォルトの名無しさん
2021/08/04(水) 09:29:59.39ID:DV/IEEV3 何年か前からアナウンスしても移行が破綻するほどに互換性が皆無なら、言語そのものが致命的な破壊的変更すぎるということだし
そうでないならどこかのタイミングでエイリアス化してもそこまで困らない
ちょうどいまのIEとEdgeに似た状況なのでは
そうでないならどこかのタイミングでエイリアス化してもそこまで困らない
ちょうどいまのIEとEdgeに似た状況なのでは
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【スパイト行動】俺のコ,ードを入れれば1500円貰えるのに、俺に1500円をやりたくないからやらない ⇐これが日本人ってやつか… [201193242]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
