X



Windows PowerShell Part5 [無断転載禁止]©2ch.net

レス数が900を超えています。1000を超えると表示できなくなるよ。
0666名無し~3.EXE
垢版 |
2019/06/19(水) 19:20:51.85ID:xK0fxpAY
あの。大変申し訳ありません。書き込んですぐなんですけど。2文字追加するだけでいけました・・・。

ls C:\Users\nanashi\Desktop\aaa\* -r | ?{$_.PSisContainer} | %{mi $_.FullName C:\Users\nanashi\Desktop\aaa -Force}
0668名無し~3.EXE
垢版 |
2019/06/20(木) 21:59:55.69ID:0MrGFFI/
解決策をちゃんと書き残していくのはよい質問者
0669名無し~3.EXE
垢版 |
2019/07/01(月) 22:02:39.24ID:gDEDTrjH
あるフォルダに
Movie_00_(<肝心のファイル名>).mp3
Movie_01_(<肝心のファイル名>).mp3
Movie_02_(<肝心のファイル名>).mp3
以下続く...


というファイルがあって
このフォルダで
Get-ChildItem | ForEach-Object {Rename-Item -Path $_ -NewName $_.Name.Remove(0, 1)}
これを実行すると
一回目はファイル名の最初3文字が消えて、ie_00_(<肝心のファイル名>).mp3 に
この状態で再度実行すると今度は一文字だけ消えて、e_00_(<肝心のファイル名>).mp3
この状態で再度実行すると今度は二文字消えて、00_(<肝心のファイル名>).mp3
ってなっちゃうんですがなぜでしょうか。


以前この手のファイル名置換はうまくできてたんですけど。
すごくあほな勘違いかミスだと思うのですが
もうずっと考えてもわからないので助けてください。
0670名無し~3.EXE
垢版 |
2019/07/01(月) 22:16:02.19ID:gDEDTrjH
>>669 ですが、
Get-ChildItem Movie* としてフィルタをかけた状態でやったらうまくいきました。

どうして?
0671名無し~3.EXE
垢版 |
2019/07/01(月) 23:28:00.47ID:uIgvbVot
Forループの途中で名前が変わってるのがミソ
ループの列挙子が_A〜Za〜zの順にファイルをピックアップする
Mで始まるファイル名を一通り拾って置換した後
置換後の名前はoで始まるから同じループ内で再度ピックアップされてしまう
M, o, v まで文字コード昇順に並んでるから1回のループで1文字ずつ3回置換されてる
次のiはvよりも若い文字だからもう走査済みなのでそこで止まる
0672名無し~3.EXE
垢版 |
2019/07/02(火) 12:01:04.72ID:zGMk2kNX
おー、そういうことなのか
ありがとう。

単純にファイルのリストを作って次のループに渡すんじゃないのね、
今後もはまることありそうだわ。
0673名無し~3.EXE
垢版 |
2019/07/02(火) 14:56:54.49ID:Kl4l2xkx
一つのコマンド処理が終わるのを待ってパイプで受け渡してたら
メモリと時間がうなぎのぼりに増えていく
0675名無し~3.EXE
垢版 |
2019/07/02(火) 18:36:27.14ID:Uygpu8q0
psのパイプ考えた奴が素人なだけ
0676名無し~3.EXE
垢版 |
2019/07/02(火) 21:12:10.39ID:euC1izTi
オブジェクトを渡せるメリットとのトレードオフなので素人ではないよ
0677名無し~3.EXE
垢版 |
2019/07/02(火) 23:36:37.88ID:TyEsGTkR
いやむしろそれこそがパイプラインだろと
一体誰が素人って話なんだ
0678名無し~3.EXE
垢版 |
2019/07/03(水) 07:08:43.16ID:vqsZM7Td
たぶんUNIX村からのご出張でしょうな
0679名無し~3.EXE
垢版 |
2019/08/10(土) 18:26:21.57ID:PXmhVK7n
PwerShellをbuildしようとしてるんだけど
DotNetEventingStrings
がコンテキストに含まれていないと叱られます
これはどのモジュールに含まれてるんでしょうか?
0680名無し~3.EXE
垢版 |
2019/08/22(木) 23:59:33.45ID:K+gTDFqX
共有フォルダ(\\192.168.0.1\hoge)上でpower shellを動かしたいんだけど
証明書なしだから実行出来ないというエラーが出てしまう

オレオレ証明書での実行の仕方もいまいちわからんのですが
参考なるところ教えてくれませんか
社内で使うとかで、makecert.exeとかは無い状態です
助けてお願い
0681名無し~3.EXE
垢版 |
2019/08/23(金) 00:23:20.63ID:ToU/KkwI
実行ポリシーは何にセットされてるの?
変えて良いなら変えるのが手っ取り早いと思うけど
0682名無し~3.EXE
垢版 |
2019/08/23(金) 04:12:52.07ID:KfhASCfo
リモートホスト上で走らせたいのか、クライアント上で走らせたいのか?リモートなら当然認証や権限の問題を適切に処理せんとどうしようもない
0685名無し~3.EXE
垢版 |
2019/08/31(土) 13:32:42.74ID:zuKvVwg6
すみません
調べても分からなかったのでご教示ください
標準出力をパイプに渡してエラーのみをファイルにリダイレクトということはできるのでしょうか
2> file 1| command
にすればいいんでしょうか?
0686名無し~3.EXE
垢版 |
2019/08/31(土) 14:04:02.83ID:oEyca86t
よく意味がわからない
パイプはエラーを通さない。通すのは標準出力のみ
エラーをファイルにリダイレクトするには
command 2>a.txt
のようにする
0687名無し~3.EXE
垢版 |
2019/10/31(木) 16:36:09.47ID:1dL9U9Hi
powershellでcpu100%になれば下げたり何かのタスク終了したりできますか?
0688名無し~3.EXE
垢版 |
2019/10/31(木) 20:08:36.34ID:ZCoMddM0
何のタスクを終了するんだい
0689名無し~3.EXE
垢版 |
2019/11/01(金) 01:04:05.26ID:bczBnfL9
たぶんそのような機能はあるはずだが
Windows でその種の機能って実用的な動きしないこと多いしな
0690名無し~3.EXE
垢版 |
2019/11/01(金) 03:17:42.41ID:LlYu3Gs5
CPU100%だからpowershell動けないんじゃw
0691687
垢版 |
2019/11/01(金) 06:54:21.70ID:JtTVcao3
ありがとう。なんかアプリでありそうですね。
電源管理で100%押さえれますわ。
60%とかにしときました。
0692名無し~3.EXE
垢版 |
2019/11/18(月) 16:37:17.68ID:+tBwWmNo
GPOの設定を自動化したいんですけどGPMCとかいうの入れずにやる方法ありませんか?
0693名無し~3.EXE
垢版 |
2019/11/18(月) 17:35:05.90ID:+tBwWmNo
因みにローカルポリシーです
0694名無し~3.EXE
垢版 |
2019/11/20(水) 00:30:59.01ID:ttKyh2AH
ポリシーってのはセキュリティ周りのを除けば基本的にレジストリの設定集と思えばいい
逆説的に言えばポリシーで設定されるレジストリ値を設定してしまえばいいだけ

ドメインポリシーみたいな強制性が欲しいとか
そういう管理面での要件があるなら別だけどパンピーなら
該当するレジストリを設定すりゃ間に合うはず

もちろんすべてがすべてそうという訳じゃないが
0696名無し~3.EXE
垢版 |
2019/11/25(月) 12:22:48.13ID:X35HBkWO
powershell v2でテキストの文字列置換する方法教えて
(gc a.txt).replace("aaa","bbb") |Out-File b.txt
ってやるとv3では通るんだけどv2だとエラーになっちゃいました
0698名無し~3.EXE
垢版 |
2019/11/25(月) 13:56:46.28ID:TMBqTvCs
>>697
ありがとうございます。
やってみたのですが[IO:file]という型がありませんとか表示されちゃいました
因みにosはwindows2008r2です
0699名無し~3.EXE
垢版 |
2019/11/25(月) 14:29:40.85ID:czQcCtPG
すみません頭に[System.IO.file]とやったらいけました
0700名無し~3.EXE
垢版 |
2019/11/25(月) 19:03:30.59ID:ZKwCtEQv
powershell2.0で教えてください
単純にフォルダをネットワークドライブ配下に移動したいのですがいい方法はありませんでしょうか
何故かファイル単位だとうまくいきます
↓な感じです
Move-Item "元ファイル" -destination \\server\log

3.0だと同じ処理をやってもうまくいくのに何故2.0はこんな簡単なことも出来ないのか半泣き状態です
0701名無し~3.EXE
垢版 |
2019/11/26(火) 03:16:54.86ID:wx4Gu8qz
>>700
どんなエラーが出るとか、どういう結果になったとか書くとアドバイスもらいやすいよ
2.0でも Move-Item -Path "元フォルダ" -Destination \\server\log でOKなはずだけど

Windows Server 2008でもWindows Management Framework 3.0でpowershell 3.0が使えるようになるけど、サーバだと他の影響が怖くて変更しにくいのかな?
0702名無し~3.EXE
垢版 |
2019/11/26(火) 04:09:29.13ID:QNi+IjdU
-Forceつけてダメだったら
Move-Itemあきらめて
PS> Copy-Item "元ファイル" -destination \\server\log\ -recurse
PS> Remove-Item "元ファイル" -recurse
かな
原因は突き止めた方がいいと思うけど

PS> gi "元ファイル" | % {$_.MoveTo(“\\server\log\“)}
でもダメなんだろうなあ
0703名無し~3.EXE
垢版 |
2019/11/26(火) 04:14:36.25ID:QNi+IjdU
>>702
スマホから書いたら全角混じっちゃった
失礼
0704名無し~3.EXE
垢版 |
2019/11/26(火) 09:49:42.59ID:4PI9QRif
>>701-703
ありがとうございます
エラー内容については仰るとおりです
失礼いたしました

なおエラーは↓が出ていました
Move-Item:ソースとターゲットのパスは同一のルートを持たなければなりません。[移動]操作はボリューム間で行えません。

個人的にはpowershellv3を入れないのですが商用サーバーということもありそうも行かず…

頂いた内容でまず試してみます
0705名無し~3.EXE
垢版 |
2019/11/26(火) 10:20:33.67ID:issOaB3b
>>702
試してみたところcopy-item、remove-itemでうまくいきました!
何故move-item出来ないのか謎ですが一旦これでいきます
ありがとうございました
0706名無し~3.EXE
垢版 |
2019/11/28(木) 17:33:35.65ID:UutRgdFV
スクリプトで
VPNセッションを張って、opensshでLinuxサーバーにログインしたいんですが、クレデンシャル情報ってどう引き渡せば良いですかね
0709名無し~3.EXE
垢版 |
2019/12/12(木) 13:30:11.50ID:aITAYOet
コマンドプロンプトでcopy /b file1 + file2 out
でバイナリ結合できるけど
Get-Contentではどう頑張ってもできない?
結局cmd /c copy 〜 でやってる
0710名無し~3.EXE
垢版 |
2019/12/12(木) 19:38:43.11ID:sSCzuna3
copy xcopyをpowershellで完全に置き換えられるレベルまでMSには頑張って欲しかったなぁ
0711名無し~3.EXE
垢版 |
2019/12/12(木) 19:40:28.67ID:sSCzuna3
いまはxcopyじゃなくてrobocopyだった
0712名無し~3.EXE
垢版 |
2019/12/13(金) 00:44:59.55ID:61/cMtkf
xcopyで出来るものならxcopy使うけど
なんたってrobocopyとは速さが桁で違ってて比べ物にならない
0715名無し~3.EXE
垢版 |
2019/12/15(日) 15:40:50.15ID:6n1qFnV/
ファイルコピーに野良ライブラリーは使いたくない

コマンドプロンプトからの移行をMSが本気で考えていたならファイルコピー機能はまず最初に実装すべきなのに
0716名無し~3.EXE
垢版 |
2019/12/15(日) 16:49:07.04ID:2dlapD2y
robocopyをPowershellから実行できるから別にいいや
リッチなコピーコマンドをまた覚えるのも面倒だし
0717名無し~3.EXE
垢版 |
2019/12/15(日) 21:01:19.10ID:993qKj4t
>>715
「コマンドプロンプトの外部コマンド」じゃなくて「OSに標準搭載されてるコンソールアプリ」だと考えろ
Get-Command xcopyやGet-Command robocopyを実行するとCommandTypeがApplicationになってるんだし

PowerShellは名前の通りシェルであって
シェルからアプリを起動するのを躊躇する理由は全くない
0719名無し~3.EXE
垢版 |
2020/01/18(土) 23:33:35.90ID:yMfYhX5B
>>712
>なんたってrobocopyとは速さが桁で違ってて比べ物にならない
xcopy遅いですよね
0721名無し~3.EXE
垢版 |
2020/01/29(水) 13:43:55.36ID:UoiiX31V
名前にブラケットとか入ってるディレクトリをカレントディレクトリにして
適当なファイルにGet-Item -LiteralPath hogeとかするとObjectNotFoundになる。
内部で絶対パスを生成するときにカレントディレクトリのパスをエスケープしているようだ。
LiteralPath使ってんだから勝手にエスケープすんなやアホか。
0722名無し~3.EXE
垢版 |
2020/01/29(水) 18:35:57.45ID:gR+X94j5
新しいクロスプラットフォームの PowerShell をお試しください
0724名無し~3.EXE
垢版 |
2020/03/05(木) 13:27:47.75ID:NKnB4YOj
Microsoft、「PowerShell 7.0」を一般公開 〜三項演算子やnull結合演算子をサポート
「.NET Core 3.1」ベースとなり、3年間のLTSサポートが付属
ttp://forest.watch.impress.co.jp/docs/news/1238950.html
0726名無し~3.EXE
垢版 |
2020/03/05(木) 15:15:40.94ID:ptslk0x0
.net特化型スクリプト言語、って割りきってるのかなとも思ったけど
どうも開発陣はこの言語構文が優れているという信念を持ってるらしい
Python と似た芳ばしさを感じる
あんまり近寄りたくない
0727名無し~3.EXE
垢版 |
2020/03/05(木) 16:44:58.96ID:ZUmYtQCW
7って管理者モードで起動しているかいないかがコンソールウィンドウのタイトルで分からなくなってる?
0728718
垢版 |
2020/03/05(木) 18:29:15.54ID:W833SNVd
7.0.0はMicrosoft Storeでのリリースはなしか
7.0.0-rc.3ではGitHubにあった.msixもない
0729名無し~3.EXE
垢版 |
2020/03/05(木) 19:17:11.27ID:ULDTTofW
フォルダ内のjpgの画像データを一括でリサイズするとき、拡張子をjpegではなくjpgのままで変換したいのですが可能なのでしょうか
0731名無し~3.EXE
垢版 |
2020/03/05(木) 21:29:39.03ID:oZCxCgVu
>>730
正直、余計なことしてない分シェルとしてはUnix シェルの方が使いやすい
言語として貧弱なのはあくまでもシェルが本文と割りきってるからで
言語機能を強化するためにシェルとして分かりにくくなってるPowerShell よりもツールとしては百億倍合理的
0732名無し~3.EXE
垢版 |
2020/03/05(木) 22:56:25.16ID:4HGBQro5
echoの仕様すら統一できてないくせに合理的だの使いやすいだの
なんのギャグやら
0733名無し~3.EXE
垢版 |
2020/03/05(木) 23:03:03.44ID:oZCxCgVu
PowerShell のように奇妙キテレツな挙動じゃないからなそこまで実害がないもの
0734名無し~3.EXE
垢版 |
2020/03/05(木) 23:08:57.04ID:oZCxCgVu
言語としての機能はPowerShell の方が上だよ
でも単純にShell として考えた場合の実用性はbashどころかcshにも劣る
0735名無し~3.EXE
垢版 |
2020/03/06(金) 01:26:28.91ID:jImN287F
まあ裏返せばCLIの使い勝手しか改善のしようがなくなっちゃっただけなんだけどね
多分10年20年先も*shの読みづらさは変わらんだろうし
0736名無し~3.EXE
垢版 |
2020/03/06(金) 01:35:46.30ID:ixGy8d5B
読みづらさなんて最初だけ
Unix の世界は慣れれば同じルールで一貫してやっていけるから楽
PowerShell なんてパイプラインの挙動がオブジェクトや文脈で変わりまくって、かなりの経験者でも動かしてみるまでどうなるか予想できないだろ?
Unix ならしばらく勉強すればログから複雑な条件で問題行を抽出するとかできるようになる
同じ期間PowerShell 学習した奴が同じことしようとしたら、自動書式化回避するために丸一日潰すことになる
Unix でせっかく克服した
Multicsのバッドプラクティスを
ご丁寧に復活させようとしてるのがWindows だろ
0737名無し~3.EXE
垢版 |
2020/03/06(金) 02:31:14.74ID:y5VvdGki
ということは、もう一回りすれば、良い物ができるかもしれないのだな
トンプソンみたいな人がいれば...だが
0738名無し~3.EXE
垢版 |
2020/03/06(金) 09:20:28.21ID:zWFpYiuw
> PowerShell なんてパイプラインの挙動がオブジェクトや文脈で変わりまくって

意味が分からないんで解説お願い
0739名無し~3.EXE
垢版 |
2020/03/06(金) 13:23:48.84ID:TPaDx+gw
習うより慣れろですよー
0740名無し~3.EXE
垢版 |
2020/03/06(金) 19:40:39.44ID:yPOAEe0a
>>738
わからないから使えてる(気がしてる)んだろう

>>739
そういうのは挙動に一貫性があって言えること
慣れたところでその慣れが極めて局所的にしか役に立たないんじゃたいして役に立たない
MSの製品はアプリもAPI もみんなそう
0741名無し~3.EXE
垢版 |
2020/03/06(金) 21:24:38.99ID:jImN287F
デバッグの第一歩がいきなりログ解析じゃ話にならない・・・原始的すぎる・・・
0743名無し~3.EXE
垢版 |
2020/03/07(土) 01:06:21.98ID:SPPCIA0K
>>742
結局丸一日考えてその程度のことしか言えないのか
0744名無し~3.EXE
垢版 |
2020/03/07(土) 08:15:52.36ID:owgs+MCe
>>736
> PowerShell なんてパイプラインの挙動がオブジェクトや文脈で変わりまくって
具体例よろしく
まあ笑える例しか出てこないと思うけどw
0745名無し~3.EXE
垢版 |
2020/03/08(日) 08:25:49.72ID:11hStfxv
>>740
一貫性がないのはUNIXシェルだろ
偉そうなこと言うのはechoの挙動くらい統一してからにしろ
何のためのPOSIXなのやら
0746名無し~3.EXE
垢版 |
2020/03/09(月) 14:43:50.66ID:Qkj9PMO1
>>744
昔外部コマンドをパイプでつないだらバイナリデータが化けてイーッてなった覚えがあるんだけど
あれからだいぶバージョン上がったが、そろそろ直ってる?
0747名無し~3.EXE
垢版 |
2020/03/09(月) 20:04:54.00ID:dakVweva
PowerShellでパイプに流せるのはテキストかオブジェクト
バイナリ流すとテキストだと思ってUnicodeに変換しちゃうらしい
0748名無し~3.EXE
垢版 |
2020/03/13(金) 23:28:06.62ID:nIU/F4Vd
外部コマンド呼んでstderrになんか出るとエラーになるのマジでうざい
cmdletちゃうんやからLASTEXITCODEだけで判断せえよ
0749名無し~3.EXE
垢版 |
2020/03/14(土) 08:56:25.61ID:NwTTFGvN
stderrは乱用されすぎなんだよ
PowerShellのWrite-VerboseやWrite-Debugはもっと評価されるべき
0750名無し~3.EXE
垢版 |
2020/03/14(土) 16:34:52.22ID:WddRdAKw
Windows10にPowerShell7入れたんだがGet-Clipboardが
The term 'Get-Clipboard' is not recognized...
ってなるんだけどなんで?
ちなみにSet-Clipboardは使えた
0751名無し~3.EXE
垢版 |
2020/03/14(土) 18:41:13.14ID:ejLCo26q
なんでだろ
gmo "Microsoft.PowerShell.Management" | % exportedcommands
の出力にGet-Clipboardあるか探してみて
0752名無し~3.EXE
垢版 |
2020/03/14(土) 21:57:17.97ID:WddRdAKw
なんか知らんが今やったら使えた
>>751 のコマンド入れたから?
できなかった時から起動しっぱなしのシェルだからそれぐらいしか考えられない
0755名無し~3.EXE
垢版 |
2020/03/23(月) 18:07:18.65ID:5HZDWhkJ
& hogehoge.exe 2> "hoge[1].txt"
なんてことをたいんだけど、これだとブラケットをワイルドカード展開しようとしてエラーになる。
[WildcardPattern]::Escape()使うとエラーにはならないけどファイル名にバッククォートが入る。
どうすればいいですか?
もしくはstdoutは捨ててstderrだけパイプラインに流す方法とかありますか?
0756名無し~3.EXE
垢版 |
2020/03/23(月) 21:59:40.00ID:5HZDWhkJ
(& hoge.exe 2>&1|?{$_ -is [System.Management.Automation.ErrorRecord]}).Exception|Out-File -LiteralPath 'a[1].txt'
でできた
0758名無し~3.EXE
垢版 |
2020/03/25(水) 21:42:59.85ID:M9ycgz2S
6.0以降はWindows powerShellじゃないんだが、このスレで話してもいいの?
0760名無し~3.EXE
垢版 |
2020/04/17(金) 16:11:39.26ID:PP+Qj0XC
外部コマンドの出力をパイプラインでつないでごにょごにょしようとしたら
外部コマンドが終わらないと次の処理に行かないんだが、どういうこと?
MS-DOSに先祖返りしたんか?
0761718
垢版 |
2020/05/17(日) 10:38:47.60ID:lAFdfHmU
7.0.1が出て.appxが復活したもののなぜかPreview扱いになってるな
Windows TerminalでもPreviewとみなされてる(アイコンがPreview版)
0762名無し~3.EXE
垢版 |
2020/05/21(木) 09:21:04.43ID:UoKRReBv
wingetがまだプレビュー版だからでしょ
0763名無し~3.EXE
垢版 |
2020/05/21(木) 22:29:37.81ID:RlvGm1Z3
ググると文字列は+で繋げるとありますが、
$word="坂本"
echo $word+"竜馬"
だと坂本+竜馬と表示されるのですが?

$word="坂本"
echo $word"竜馬"
だと坂本龍馬と表示される。
0765名無し~3.EXE
垢版 |
2020/05/21(木) 22:53:17.83ID:RlvGm1Z3
>>764

ありがとうございます。
分かりました。
0766名無し~3.EXE
垢版 |
2020/06/08(月) 02:51:30.15ID:OOuazV2u
>>763
PowerShell流にやるならechoはいらないので

$word="坂本"
echo $word+"竜馬"
としないで

$word="坂本"
$word+"竜馬"
とすれば望まれた結果になりますよ
0768名無し~3.EXE
垢版 |
2020/06/08(月) 09:29:28.77ID:w7Ay6/d5
>>767
要らない
他の言語のように return $a とか書けるけど
$a
return
と同じ意味
0769名無し~3.EXE
垢版 |
2020/06/08(月) 09:53:04.36ID:zBhIw9ZE
PSでは代入などの文にせずに式を書くだけでコンソールに出るから基本echoは要らない
echoにはおそらく互換性のために、式モードと引数モードというのがあって、引数モードだと引用符が要らない
最初から
echo 坂本竜馬
と書ける
式モードにするなら
echo ($word+"竜馬")
のようにかっこで囲む

>関数でも最後ならreturn要らないの?

最後だけでなく途中に書いた式による出力も全部戻り値としてパイプに渡される
PSにおいてreturnは戻り値を返すというより関数を抜ける役割で使うもの
0770名無し~3.EXE
垢版 |
2020/06/08(月) 10:05:45.26ID:U7pSgye2
横だが分かりやすかった。ありがとう
0771名無し~3.EXE
垢版 |
2020/06/08(月) 12:05:18.68ID:3EJC9Znn
>>763
で、簡単じゃんと思ってディレクトリもこれで繋がると思ってみたり
ディレクトリはJoin-Path使う罠
0772名無し~3.EXE
垢版 |
2020/06/12(金) 18:46:33.05ID:KimozeVe
7.0.2, 6.2.6が出た
7.0.2の.msixは相変わらずPreview版扱い
0773名無し~3.EXE
垢版 |
2020/06/12(金) 19:10:28.31ID:jPH83Z/s
Previewになってるのは7.1で修正するらしい
0774名無し~3.EXE
垢版 |
2020/07/28(火) 02:20:27.27ID:A/z/TC+R
Invoke-CommandでリモートPCのGUIコマンドを実行し、かつGUIの出力先を
そのリモート上の任意のセッション(consoleやrdp-tcp)にすることってできますか?
0775名無し~3.EXE
垢版 |
2020/07/28(火) 19:41:04.50ID:kJVAdpIi
何で出来ると思えるのか聞きたい
0776名無し~3.EXE
垢版 |
2020/07/28(火) 20:47:46.47ID:nm0PODKT
そのguiアプリがコマンドラインオプションで出力先を指定できる仕組みを持っていればできるんじゃない?
0777773
垢版 |
2020/07/29(水) 01:30:46.24ID:esehAF6j
ググりまくってようやく答えを見つけました↓
https://serverfault.com/questions/690852/use-powershell-to-start-a-gui-program-on-a-remote-machine

LinuxみたいにXアプリを他ディスプレイに飛ばす(xhostで許可設定して -display :N オプションをつける)
みたいな真似は、やはり仕様上困難のようです。そりゃそうですね。

というわけで、PSToolsのpsexecを使うとやりたいことができました。

@qwinstaで出力したいセッションのIDを調べる
psexec \\リモートホスト -u ユーザ名 -p パスワード qwinsta

A-iオプションにそのIDを指定
psexec \\リモートホスト -u ユーザ名 -p パスワード -i セッションID notepad

(ちなみにOpenGLみたいにローカルのコンソールセッションでないと起動できないプログラムの場合は
事前にtsconコマンドでコンソールセッションをActiveにしておくのが必要です)
0778名無し~3.EXE
垢版 |
2020/08/02(日) 06:55:32.27ID:+/FPdhow
Powershellでディレクトリ内も含めてファイル名だけ取得することってできますか?
Get-ChildItemのオプションで-Recursiveと-Nameだとディレクトリ名もついてくる
0779名無し~3.EXE
垢版 |
2020/08/02(日) 07:03:09.76ID:9GFQj2PC
Get-ChildItem -Recursive | %{$_.Name}
0780名無し~3.EXE
垢版 |
2020/08/02(日) 10:22:56.27ID:bS2jZFLJ
Get-ChildItem -Recurse -Name -File
0781名無し~3.EXE
垢版 |
2020/08/02(日) 13:03:20.34ID:GfIAh57T
最適解は>>780なんだろうけど
いつも Get-ChildItem -File -Recurse | % Name としてしまう
0782名無し~3.EXE
垢版 |
2020/08/03(月) 08:24:14.78ID:/BHUE2Pj
ありがとう。結果は
-Nameだとディレクトリ名も入ってしまう
| %Nameだとエラー
|%{$_.Name}だとファイル名のみ表示できた
でした
0783名無し~3.EXE
垢版 |
2020/08/03(月) 13:17:05.72ID:v0TeUFwf
なんで書いたとおりに試さないの?
%Name でなく、 % の後に空白の入った % Name
% は ForEach-Object の alias だから ForEach-Object Name ってこと
0784名無し~3.EXE
垢版 |
2020/08/03(月) 13:20:10.33ID:v0TeUFwf
ついでに言っとくと -File がないとディレクトリ名も表示される
0785名無し~3.EXE
垢版 |
2020/08/03(月) 21:09:15.45ID:YtXtnZSj
>>783
エイリアスわかんない相手にエイリアスつかっちゃ駄目な奴では
0786名無し~3.EXE
垢版 |
2020/08/03(月) 22:30:03.43ID:EF5S+eIw
駄目で奴でやんした恐れいりやす
0787名無し~3.EXE
垢版 |
2020/08/04(火) 06:43:43.33ID:MkpNDnoz
コマンドラインでは gci -File -Recurse | % Name だな
Get-ChildItem なんて補完するのも面倒過ぎる
0788名無し~3.EXE
垢版 |
2020/08/04(火) 07:23:33.96ID:54M4vZR5
自分用に書き捨てるならそれでいいけどさ
0789名無し~3.EXE
垢版 |
2020/08/04(火) 08:32:57.63ID:iEcRf322
dirでもlsでもgciでも手になじんてるのでいいよ
0790名無し~3.EXE
垢版 |
2020/08/04(火) 19:16:34.55ID:btL6ZsYE
Get-ChildItemdirちょー手になじんてる
0791名無し~3.EXE
垢版 |
2020/08/05(水) 03:05:58.57ID:MMmEuowj
>なじんてる

日本語は馴染んでないようだね
そういう人にしか使えないから、いまいち普及しないんだろうね
0792名無し~3.EXE
垢版 |
2020/08/05(水) 08:54:13.42ID:CydBOHs8
(あ、揚げ足取り……クスクス)
0793名無し~3.EXE
垢版 |
2020/08/05(水) 09:50:52.66ID:prtHLCOk
濁点のミスはスマホ入力でよくあるから気にならない
けどGet-ChildItemdirっていうワードが謎で文意がまったく掴めねぇー

エスパーすると本命は、Get-ChildItemと書きたかったけどdirを消し忘れた
対抗は、Get-ChildItem手になじんでる!と言いつつコマンドレット名間違ってましたテヘペロという高度なボケ
0794名無し~3.EXE
垢版 |
2020/08/06(木) 21:21:27.68ID:PsWRMYAT
必殺技:パワーシェル
効果:使い手を弱らせる
0795名無し~3.EXE
垢版 |
2020/08/07(金) 21:07:42.66ID:q0u5BL83
私はたかがPowerShellすら使えない無能ですまで読んだ
0796名無し~3.EXE
垢版 |
2020/08/07(金) 22:01:56.66ID:TeVat5Ow
>>795
お前はWin7環境を強いられている民を全員敵に回した
0798名無し~3.EXE
垢版 |
2020/08/07(金) 23:45:45.24ID:VEWCcMkX
コンソールにかき捨てならエイリアスでいいけど
スクリプトになんでもエイリアス仕込む奴のコードは扱いたくない

コードゴルフじゃないんだし
0799名無し~3.EXE
垢版 |
2020/08/08(土) 06:37:18.63ID:CWMKjVnz
あっっっっっったりまえのことだな

>>797 にもあるけど
>When working interactively at the Windows PowerShell console, the primary purpose is to accomplish something. I want to get the task completed accurately, and timely. I do not want to expend any extra effort to accomplish the task.

こういう時はaliasを使うし、

>On the other hand, when I write a Windows PowerShell script, the purpose is to have something I can use over and over again.
>The goal here is reusability, not speed of development and execution. Therefore, I do not want to use aliases in my script because it hinders readability and understanding.

こういう時はaliasを使わない

gci | ? LastWriteTime -ge 2020/8 | sort LastWriteTime
( gci | ? lastw[TAB] -ge 2020/8 | sort lastw[TAB] )

とか結構使うけど、スクリプトでは絶対こんな書き方はしない

>>787 だって
>コマンドラインでは gci -File -Recurse | % Name だな

と断りを入れてあるんだからaliasの適切な利用だと思う
0800名無し~3.EXE
垢版 |
2020/08/08(土) 07:09:36.96ID:BMLdzU/2
CodeGolfして

gci | ? L*r*e -ge 2020/8 | sort L*r*e

でも動く
0801名無し~3.EXE
垢版 |
2020/08/08(土) 07:32:40.43ID:mkClI8NB
(わ、話題そらし……クスクス)
0802名無し~3.EXE
垢版 |
2020/08/08(土) 08:21:40.63ID:zjVm3blX
(そ、そぼろ状のパスタ……クスクス)
0803名無し~3.EXE
垢版 |
2020/08/25(火) 10:39:42.29ID:9opdw73p
7.1.0-preview.6
Microsoft Storeに来たな
0805名無し~3.EXE
垢版 |
2020/10/24(土) 22:37:57.28ID:3cOi6IwO
get-contentもstream対応したのか
0806名無し~3.EXE
垢版 |
2020/10/28(水) 18:29:04.69ID:s2QvF4Go
VBAとかC#もこの板にスレ立てた方が盛り上がるんじゃないだろうか
0808名無し~3.EXE
垢版 |
2020/11/01(日) 09:15:35.84ID:kokzTy3K
PowerShell単体でBluetooth LEとか変なことやろうとしてるけど、
最後の最後で機器からのNotifyを受け取るのにWindows Runtimeのイベントを扱う必要が出てきて、PowerShellでは対処できそうにないなあ

Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicオブジェクトのValueChangedイベントをRegister-ObjectEventしようとすると
Windows PowerShell cannot subscribe to Windows RT events.とか怒られる
0810名無し~3.EXE
垢版 |
2020/11/11(水) 19:20:34.33ID:NAGZD9bl
.NET 5.0が出たってことはPowerShell 7.1の正式リリースももうすぐか
0812名無し~3.EXE
垢版 |
2020/11/12(木) 23:23:07.07ID:0y4uR1Xi
>>811
Microsoft Storeにも正式版が来たな
Previewと共存も可能
0813名無し~3.EXE
垢版 |
2020/11/12(木) 23:35:51.03ID:/s5b2lhC
>>807
マジだ…知らんったわ
-asbytestreamとか見てあー最近こんなのあるんだ進歩してるなーとか思ってた
0814名無し~3.EXE
垢版 |
2020/11/17(火) 14:49:55.66ID:bh4EVKEm
ps1を隠蔽化しようと思ったらどうするのがいいんだ
Ps2exeでは簡単にデコンパイルされちゃうのは分かったんだけど
0815名無し~3.EXE
垢版 |
2020/11/18(水) 01:07:01.76ID:4kSYCeXk
>>814
難読化なら Invoke-Obfuscation ってのがあるよ
0816名無し~3.EXE
垢版 |
2020/11/18(水) 01:36:33.90ID:pTgItdzc
Invoke-Fusianasan に空目した
0817名無し~3.EXE
垢版 |
2020/11/18(水) 10:10:00.11ID:t2T7RWax
>>815
サンクス!
こういうのが欲しかった!
これとExe化とか併用したら結構隠蔽力強いかな
0818名無し~3.EXE
垢版 |
2020/11/18(水) 13:04:55.21ID:K8HVniJz
>>810
iOSやAndroidにも必要になるぞ
0819名無し~3.EXE
垢版 |
2020/11/18(水) 13:21:34.45ID:Hazb8mOl
devアイコンかわいくなってる!><;
キャー
0822名無し~3.EXE
垢版 |
2020/11/24(火) 11:51:42.95ID:D/aXRERm
Windowsの設定でアプリをリセットできますが、これを行うコマンドはあるのでしょうか?
インストール/アンインストールはAdd/Remove-AppxPackageでできるので、Appx関係を見てみましたが、分かりませんでした
0823822
垢版 |
2020/11/24(火) 11:54:15.79ID:D/aXRERm
Remove-AppxPackage -PreserveApplicationData
の逆で、設定をクリアしたいと考えております
0824名無し~3.EXE
垢版 |
2020/11/24(火) 14:08:25.59ID:s4Fvnkwj
ttps://winaero.com/reset-a-store-app-in-windows-10-using-powershell/
0825名無し~3.EXE
垢版 |
2020/11/25(水) 09:21:30.54ID:lVO2rDcF
>>824
ありがとうございます。
まだ、1909から上げてないので、Reset-AppxPackageがありませんでした。
アップデートするか、別の方法へのリンクもありましたので、そちらも検討したいと思います。
0827名無し~3.EXE
垢版 |
2021/01/13(水) 10:43:55.64ID:ssWbPrOV
「ごみ箱を空にする」の自動化はググればけっこう見つかるけど、実際やってみるとCMD窓が出てきてしまう。
これを出さずにサイレントで実行させるショートカットが作りたいんだけどなあ。
0829名無し~3.EXE
垢版 |
2021/01/13(水) 14:38:28.50ID:ssWbPrOV
>>828
前者はVC++の導入が必要ゆえ、少しハードルが高いな。
後者は使いこなせば強力そうだ。チャレンジのしがいがあるな。後者でいってみよう。
0830名無し~3.EXE
垢版 |
2021/01/20(水) 20:19:51.88ID:QnHUFl0J
今のwin10はcsc.exeが入ってるのでc#のラッパーでもいいと思う
いまどきnetでもたつかないし
0831名無し~3.EXE
垢版 |
2021/01/28(木) 17:20:35.42ID:eYITODPd
多分C♯より前からあるcsc.exe(chicken scheme compiler)が潰されて困る
0832名無し~3.EXE
垢版 |
2021/02/01(月) 00:48:25.09ID:D2HWsHQI
Windows10環境で使用しています。
膨大なログファイルから「error」を含む一文と、
| ではじまる一文を抜粋したいので、Select-String を使えばよいということまでわかりました。
Get-Content *.log | Select-String " Error "
でなんとか「error」を含む一文を拾うところまではできました。
その先の2点で詰まってます。

[質問1]
| ではじまる一文をor検索する為、
sls " Error ","エラー","^| " (dir -recurse *.log)
とすると、意図していない大量の文章が抽出されてしまいます。
おそらく "^| " 部分が正しくないと思われますが、
「〜という文字で始まる」という指示がどうすればよいのでしょうか。

[質問2]
・そのままSelect-String をすると、「ファイル名:行番号:検索結果」という表示になってしまいます。

・Get-Content *.log だと検索結果だけが表示されます。
以下のようなイメージで、ファイル名とその検索結果一覧をまとめて表示させたいのすが、可能でしょうか。
(そもそも Select-String では難しいのでしょうか)

---------------------------
File001.log
2021/02/01 なんとかかんとかErrorなんとかかんとか
| なんとかかんとか
| なんとかかんとか
---------------------------
File002.log
2021/02/01 なんとかかんとかErrorなんとかかんとか
| なんとかかんとか
---------------------------
0833名無し~3.EXE
垢版 |
2021/02/01(月) 04:18:29.50ID:T1Zj8w2i
正規表現のエスケープは\
正規表現使わないなら -SimpleMatch
0834名無し~3.EXE
垢版 |
2021/02/01(月) 10:03:40.90ID:Bwk3CIuA
正規表現はこんな感じになるかな
sls "¥berror¥b|エラー|^¥| "
結果の書式についてはファイル名や検索結果を変数に入れてifやforで古典的な処理を書けばどうとでもなる
0835832
垢版 |
2021/02/03(水) 01:23:36.82ID:vocjpNT8
>833さん、834さん
ご返信いただきありがとうございます。
試行錯誤した結果、以下が希望に近くなりそうです。
sls "error|エラー|^\|" (dir -recurse *.log)

書式については、上記の結果に合致するファイル名を変数に入れて・・・
とfor分をまわす感じで、ちと考えてみます。
0836名無し~3.EXE
垢版 |
2021/02/03(水) 23:47:23.88ID:RglLxc48
バッチにすりゃ済む事なのに手を抜いて一行で済まそうとするから嵌まるのではないのかよ?
0837名無し~3.EXE
垢版 |
2021/02/05(金) 10:39:22.05ID:EMbUKf+Z
便乗して Select-String について質問よろしいでしょうか
「特定の文言が記録されているtxtファイル」のフルパス一覧を取得したいンですが

sls "error" (dir -recurse *.log)
とすると「パス、行番号、該当の行」が出力されますよね

ここでパスだけの一覧を出力することは可能でしょうか
もちろんバッチでもOKでございます
0838名無し~3.EXE
垢版 |
2021/02/05(金) 14:42:37.08ID:aro1iweJ
powershellは、iniファイルの中のデータを変数に入れたりとかはできますか?
0839名無し~3.EXE
垢版 |
2021/02/05(金) 15:00:23.49ID:BgVRbDRO
それなりのコードを書けばできる
0842832
垢版 |
2021/02/06(土) 15:21:31.52ID:6H9y/njQ
>834 さんのアドバイスに従って、自分なりにいろいろ試行錯誤してみました。
おそらくあと一歩で理想形になるのですが、躓いてしまっております。

以下の内容で「PS1」ファイルを作成します。
---------------------------
#検索して"error"に合致するファイル一覧を取得し、合致したファイル名を[$fileList]へ入れる
$fileList = Get-ChildItem -recurse | sls -pattern "error" | group path | select name

#ファイル毎にループ
foreach($fileTmp in $fileList)
{
#ファイル名と"error"を含む検索結果を表示する
write-host $fileTmp.Name,(Get-Content *.* -Encoding UTF8 | sls "Error" $fileTmp)
}
---------------------------

[出力結果]
sls : 入力オブジェクトをコマンドのパラメーターにバインドできません。コマンドがパイプライン入力を受け入れないか、または
入力とそのプロパティが、パイプライン入力を受け入れるいずれのパラメーターにも一致しません。
---------------------------

おそらく
(Get-Content *.* -Encoding UTF8 | sls "Error" $fileTmp)
このあたりの処理に問題があると思われるのですが、どのように記載すればパイプライン入力が受け入れられるのでしょうか。
0844名無し~3.EXE
垢版 |
2021/02/06(土) 16:12:04.13ID:ilEs85Vn
パイプで渡したたものが何かを1個1個確認してご覧
0846832
垢版 |
2021/02/08(月) 01:53:57.41ID:sIqUTmwm
843さん、844さん、845さんありがとうございました。
パイプで渡すのをやめたら、それなりにいい感じになりました。
ここでアドバイスいただいたことはとてもいい勉強になりました。
精進します。
0848名無し~3.EXE
垢版 |
2021/03/15(月) 17:22:46.94ID:zIsFGvDo
エスケープシーケンスで困ってます
Select-String hoge.txt -Pattern "$hoge2"
などで$hoge2にエスケープシーケンスがあると当然上手く行きません
毎回、関数を作ってエスケープシーケンスを処理してるのですが
上手くくくるなどもっとスマートな方法は無いでしょうか?
0849名無し~3.EXE
垢版 |
2021/03/15(月) 17:35:32.30ID:XnNkk8sd
>>848
-SimpleMatchオプション付けて文字列にすれば?
0850849
垢版 |
2021/03/15(月) 17:40:47.01ID:XnNkk8sd
>>848
ごめん変数なんだね
自分で関数作らなくても
$hoge2 = ([regex]::Escape($hoge2))
で正規表現クラスにエスケープさせちゃえばどうかな?
0851名無し~3.EXE
垢版 |
2021/03/15(月) 18:56:13.63ID:zIsFGvDo
うわお!
こんなのが欲しかったんです
やっぱりこういうスマートなのありますよね
ありがとうです
0852名無し~3.EXE
垢版 |
2021/03/16(火) 05:17:54.52ID:Lxpp0/df
行を反転させる方法はないですか?
例えば1行目を最後の行に、最後の行を1列目にしたいです
[最大行数..1]
でも出来るのですがもっと綺麗に書けそうなので
よろしくお願いします
0853名無し~3.EXE
垢版 |
2021/03/17(水) 14:33:50.33ID:GmCg2Nqw
Powershell ver 5.1で動かすスクリプト内の特定のコマンドレットのみPowershell ver 2.0で動かす事は可能でしょうか?
5.1で動かす部分と2.0で動かす部分で変数の受け渡しも必要です。
0854名無し~3.EXE
垢版 |
2021/03/17(水) 15:05:11.81ID:Eqyv4TST
新しい側でGet-CommandしてDLL属性見てみれば本体のパスは取れる
互換性あるか不明だけどやってみたら
0855名無し~3.EXE
垢版 |
2021/04/24(土) 17:42:40.42ID:0C2a1jGq
PowerShellから可能なWindows設定の一覧とかどこかにないですかね?
WIndowsのインストール後に行う各種設定を自動化したいです
0856名無し~3.EXE
垢版 |
2021/04/24(土) 23:54:20.02ID:YOsQC2W1
windowsの設定を直接powershellでイジることは不可能だけどレジストリとかをイジることは可能
というかwindows10の設定同期はマイクロソフトアカウントが1番楽で安心だと思う
0857名無し~3.EXE
垢版 |
2021/04/25(日) 00:36:44.08ID:tvBZ2F+P
regファイルバックアップのほうが早いと思う
0858名無し~3.EXE
垢版 |
2021/04/25(日) 10:33:39.72ID:VN/qcdFW
全部の設定が可能だろ
でないとguiなしのwindowsは設定が出来ない
0859名無し~3.EXE
垢版 |
2021/04/25(日) 10:40:22.74ID:0kiuHnce
具体的に何の設定を移行したいのか「全部」書いてほしいけど
物によってはpowershellでいちいちオブジェクト考慮してやるよりレジストリいじる方向のほうが楽だったりするだろうし、適材適所で
0860名無し~3.EXE
垢版 |
2021/04/26(月) 04:54:02.64ID:lL3KV3iE
唐突にchdir HKML:してファイルシステムみたいにレジストリ探索できるの楽しい
regeditはインポートエクスポートでカルマが溜まるし、専用cmdletもドライランしなきゃ怖いし
普通のファイルみたいにダンプや検索もできるから、インタラクティブに探索するのが良いと思うよ
0861名無し~3.EXE
垢版 |
2021/04/26(月) 04:59:57.46ID:lL3KV3iE
linuxから移行した人としては、winは何でも仮想デバイスなのが進んでるなと思いました
unix系では/devが相当するけど、直下にファイルとしてズラリで階層化されてなくて、仮想ファイルでしかない
階層化しないなら、ファイルである意味ってぶっちゃけ無いよね
0863名無し~3.EXE
垢版 |
2021/04/26(月) 10:06:05.94ID:3uPX3OXy
スペルマが溜まるの誤変換だろう。
0864名無し~3.EXE
垢版 |
2021/04/29(木) 13:06:39.61ID:uhrzAAec
C:\
 20210413
  D.mp3
  E.mp3
  F.mp3
 20210227
  A.mp3
  D.mp3
  E.mp3
 20210118
  A.mp3
  B.mp3
  C.mp3
 20201125
  A.mp3
  B.mp3

↑こんなフォルダ構成があって、↓こんな風に全ファイルをALLフォルダにコピーしたいのですが

C:\
 ALL
  A.mp3
  B.mp3
  C.mp3
  D.mp3
  E.mp3
  F.mp3

どういうコマンドを書けば良いか見当もつきません。アドバイス頂けないでしょうか?
0865名無し~3.EXE
垢版 |
2021/04/29(木) 13:09:18.42ID:uhrzAAec
↑すみません、最初の1行は「C:\」じゃなくて「C:\音楽\」でした。
0866名無し~3.EXE
垢版 |
2021/04/29(木) 13:26:36.99ID:GMLI5zoS
* で検索して全部ALLフォルダにコピーすればいいんじゃないの
エクスプローラで
0867名無し~3.EXE
垢版 |
2021/04/29(木) 14:13:44.19ID:MiwfyoTx
コピーではなくプレイリストの使い方を覚えたほうがいいような気もする
0868名無し~3.EXE
垢版 |
2021/04/29(木) 21:05:40.06ID:WIhbux0w
重複してるファイル名をどう扱いたいの?
0869名無し~3.EXE
垢版 |
2021/04/30(金) 05:24:20.85ID:MlsrToaf
Get-ChildItem C:\ -Filter *.mp3 -Recurse | Move-Item -Destination C:\ALL -Confirm
0870名無し~3.EXE
垢版 |
2021/04/30(金) 11:28:16.70ID:lb0Mji28
Copy-Item じゃなくていいのかな
0871864
垢版 |
2021/05/03(月) 20:37:23.62ID:IIPdp6dZ
返信遅れてすみません。
>>869さんのコマンドでいけました。(移動でも問題ありません)
みなさんどうもありがとうございました。
0872名無し~3.EXE
垢版 |
2021/07/04(日) 19:23:09.02ID:UX05pzk1
import-excelでExcelファイルを読み込んで
配列内の文字列を検索して、見つかったインデックスを取りたいのですが、
うまく検索できません。なぜでしょうか。

ソース
$excel = Import-Excel .\hostname.xlsx
$excel
[Array]::IndexOf($excel,'server3')

結果
host
----
server1
server2
server3
server4
server5
server6
-1

↑2が返ってきてほしいのになぜか-1になるのです。
0873名無し~3.EXE
垢版 |
2021/07/04(日) 23:31:43.38ID:HqRw/FcX
>>872
[Array]::IndexOf($excel.host,’server3')
または
$excel.host.IndexOf('server3')
0874名無し~3.EXE
垢版 |
2021/07/04(日) 23:57:04.22ID:UX05pzk1
>>873
ありがとうございます
上手くできました!
0875名無し~3.EXE
垢版 |
2022/02/17(木) 00:20:05.08ID:UBGKXvXU
今までコマンドプロンプトを使っていましたが、windows power shellに乗り換えました。

コマンドプロンプトでは、エクスプローラーからドラッグ&ドロップでファイルパスが入力できましたが、
windows power shellではできませんでした。
ファイルパスを楽に入力する方法はないんでしょうか?
0876875
垢版 |
2022/02/17(木) 00:21:33.37ID:UBGKXvXU
よく見たら過疎スレなので、別スレで聞いてきます。
0877名無し~3.EXE
垢版 |
2022/04/01(金) 14:14:02.72ID:BCOOn1qr
7.2.2のpwshだけどできたよ
でもCUIでドラッグ&ドロップしようという発想はなかった
ファイラからパスコピーするかファイラからpwsh呼び出してるわ
0878名無し~3.EXE
垢版 |
2022/04/01(金) 20:00:39.28ID:3yX+my59
ドラッグアンドドロップはできる
別スレでも同じ質問あったけど管理者として実行しているとダメ
コマンドプロンプトも同じ
0879名無し~3.EXE
垢版 |
2022/04/01(金) 21:29:29.73ID:bKb60kAk
履歴を容易に削除できるようにしてくれ
0881名無し~3.EXE
垢版 |
2022/04/03(日) 16:08:25.55ID:PEsrjATP
del /f %appdata%\microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
0884名無し~3.EXE
垢版 |
2022/08/04(木) 21:50:02.45ID:IX4oNE9v
Windows Management Framework 4.0が落とせなくなってる
0885名無し~3.EXE
垢版 |
2023/01/16(月) 17:41:49.46ID:HcCG2NQa
powershellって.netオブジェクトを扱うために作られたシェルと知って愕然とした
bashやzshのように(慣れは必要なものの)ほぼCUI操作で完結できるようになるかと思いきや、そういう方向じゃないんだな
Windowsユーザでもマウス使いたく人だっているのにな
0886名無し~3.EXE
垢版 |
2023/01/16(月) 18:45:18.70ID:83ftxb2a
.netオブジェクトを扱うためってのは誰のどういう立場での発言?
どこぞのYouTuber?
仮に公式見解だとして、CUI操作で完結できるようにというゴールと排他だとする理由は?
0888名無し~3.EXE
垢版 |
2023/03/10(金) 10:17:52.87ID:+CVSBrk4
新しいバージョン 7.3.3 をここから
ttps://github.com/PowerShell/PowerShell/releases/tag/v7.3.3
これを
PowerShell-7.3.3-win-x64.msi
インストールしたのですが、
Win+x メニューから管理者として起動しても、古いものが立ち上がるんです
新しいものが起動するようにするにはどうしたらいいのでしょうか
0889名無し~3.EXE
垢版 |
2023/03/10(金) 21:10:29.41ID:BI/uLuCP
>>888
よくわからんけど、Win+Xのアレは「Windows PowerShell(5.1系)」でFixされていて、「PowerShell Core(6.x以降)」への変更は無理なのでは?
0890888
垢版 |
2023/03/10(金) 22:16:36.19ID:8m8+pSYL
>>889
どうもありがとうございます

一般メニューのほうから起動することにしました
0891名無し~3.EXE
垢版 |
2023/03/14(火) 08:50:14.12ID:j55kjbdb
レジストリに起動設定ないのかな
0892名無し~3.EXE
垢版 |
2023/03/14(火) 09:33:44.89ID:nWRh+6Kt
手っ取り早いのはwinキー, p, w, s, Enter
必要に応じて矢印キーでrun as administratorを選ぶ
Windows11なら「設定」で標準のコンソールを変えることができる
Windows10なら %LOCALAPPDATA%\Microsoft\Windows\WinX の中身を手で書き換える
desktop.ini も隠れてるので書き換え忘れずに
ミスってメニュー壊しても知らんので自己責任で
0893名無し~3.EXE
垢版 |
2023/03/14(火) 09:39:21.39ID:nWRh+6Kt
わざわざWin+Xを書き換えなくてもwinキー, p, w, s, Enterが早いしどんなコマンドにも応用が効くのでおすすめ
0894名無し~3.EXE
垢版 |
2023/03/14(火) 09:48:07.90ID:nWRh+6Kt
応用が効くと書いたので蛇足しとく
Win+R でコマンドをフルに打たなくても最近はスタートメニューにフォーカスがあるときコマンドのインクリメンタルサーチができる
古いほうは powershell.exe、新しいほうは pwsh.exe という実行ファイル名なので pws まで打ち込むと候補が絞れる
0895名無し~3.EXE
垢版 |
2023/03/14(火) 10:07:04.94ID:HmOg2wGG
15年前以上前からできるのに「最近」とは一体...
0896名無し~3.EXE
垢版 |
2023/03/14(火) 12:12:30.70ID:hqk28afV
情報は提供しないけど上げ足取るのは大好き!
0897名無し~3.EXE
垢版 |
2023/03/14(火) 17:57:08.92ID:e1/OJBFe
それが5chクオリティ
0898名無し~3.EXE
垢版 |
2023/05/10(水) 15:55:14.90ID:yrDVFTC5
PowerShell でxmlファイルをtxtファイルに
返還することはできますか?
自動化したいんです。
0899名無し~3.EXE
垢版 |
2023/05/10(水) 16:04:04.46ID:D680VMto
>>898
手動化できているのなら、変換元と変換結果をどこかにあげて例示しよう
0900名無し~3.EXE
垢版 |
2023/05/10(水) 16:35:51.40ID:/5g/7Kec
返還することはできませんね
0901名無し~3.EXE
垢版 |
2023/05/10(水) 18:17:47.39ID:yrDVFTC5
では読み込んで、クリップボードにコピー
する事はできますか?
0902名無し~3.EXE
垢版 |
2023/05/10(水) 20:13:02.47ID:Fa16cDxR
はい、できます。$cp::SetText(変数)
最初にSystem.Windows.Formsを読み込んでね
0903名無し~3.EXE
垢版 |
2023/07/24(月) 23:01:39.73ID:DAFlq/MA
scoop入れてみたけどすごくいいな。使ってる人いない?

てかロクにpowershellのコマンドを知らないものだから irm get.scoop.sh | iex でなんでインストールできるのが不思議だった
賢いなこれw
0904名無し~3.EXE
垢版 |
2023/08/01(火) 22:09:21.18ID:GWOIvX2E
Get-Contentみたいにテキストファイルを一行毎に配列にしてくれるのを
ファイルじゃなくて標準入力からテキストデータを受け取って配列にする方法はありますか?
0905名無し~3.EXE
垢版 |
2023/08/02(水) 03:46:42.44ID:SQJ1trr4
セットしたい配列変数が $ary の場合
ヒア文字列で

@"
aaa
bbb
ccc
"@ -split "`n" | tee -Variable ary

とすれば $ary に配列がセットされるけど
画面表示がいらないなら | 以降を

| % {$ary=@()}{$ary+=$_}

としてください

ヒア文字列ではなくてクリップボードの内容を受け取りたい場合は

(Get-Clipboard) | % {$ary=@()}{$ary+=$_.ToString().Trim()}

の様にすれば行毎の文字列の先頭・末尾の空白を消して配列に取り込むことが出来るでしょう
0906名無し~3.EXE
垢版 |
2023/08/02(水) 05:03:40.44ID:SQJ1trr4
>>898
txtファイルに変換の意味が改行マークの挿入+字下げで良いのなら
xmlファイルの文字コードがUTF8であれば

$f = "$Env:LOCALAPPDATA\Programs\app_foo\config.xml"
$x = New-Object xml; $x.Load($f); $x.Save($f); Remove-Variable x,f

$f のところは xml ファイルのフルパスを入れて下さい

運用する場合
アプリのフルパスが "$Env:LOCALAPPDATA\Programs\app_foo\bar.exe"
テキストエディタが "C:\Program Files\Notepad++\notepad++.exe" であるなら

C:\tools\edit_xml.ps1 の内容
Set-Alias bar "$Env:LOCALAPPDATA\Programs\app_foo\bar.exe"
Set-Alias editor "C:\Program Files\Notepad++\notepad++.exe"
$f = "$Env:LOCALAPPDATA\Programs\app_foo\config.xml"

ps bar -ea SilentlyContinue | % {$_.CloseMainWindow();$_.WaitForExit()}
$x = New-Object xml; $x.Load($f); $x.Save($f); Remove-Variable x
write "編集が終わったらリターンを押してください"
editor $f
pause
Remove-Variable f
start bar

実行する際は & C:\tools\edit_xml.ps1 で
[x] 押したらトレイに遷移するアプリは手動で終了させる or kill に書き換える必要があるでしょう
0907名無し~3.EXE
垢版 |
2023/08/02(水) 14:48:43.93ID:/Q0pkvbK
>>905
ありがとうございます。
あんたは神ですか?!
0908名無し~3.EXE
垢版 |
2023/08/02(水) 17:45:22.89ID:wAUoLFTd
いいえ、私はChatGPTです
0909名無し~3.EXE
垢版 |
2023/08/06(日) 13:37:10.66ID:trqiuMav
n番目の履歴の実行をInvoke-Historyではなくbashみたいに「!n」ってやる方法ありませんか?
0910名無し~3.EXE
垢版 |
2023/08/06(日) 13:38:10.89ID:trqiuMav
なお、腐れChatGPTの回答はなしでお願いします
聞いたら↓でできるとかデタラメ回答よこしてきたし
function global:history-command { Invoke-History $args[0] }; Set-Alias -Name ! -Value history-command -Option AllScope
0911名無し~3.EXE
垢版 |
2023/08/09(水) 21:30:00.62ID:4LDaBT3h
PowerShellでは!ではなくrを使う
あとrと番号の間に空白文字をれる
r 3
みたいな感じ

>>910の場合は!の前に&を付ける必要がある
PowerShellの!は論理否定演算子だからな
&! 3
0912名無し~3.EXE
垢版 |
2023/08/14(月) 00:12:39.99ID:KvGpu80N
文句ばっかし言っていないで、さっさと変数の中身くらいはデバッグで間違いに気付くようになれ
0913名無し~3.EXE
垢版 |
2023/08/23(水) 18:22:03.67ID:EtFVSrn5
>>911
ありがとうございます
遅レスですいません
0914名無し~3.EXE
垢版 |
2023/11/19(日) 02:53:30.57ID:mexehI6A
カレントフォルダにあるファイルをタブ補完したら頭に.\がつくのがうざい
つかないようにできん?
0915名無し~3.EXE
垢版 |
2023/11/19(日) 03:26:27.64ID:mexehI6A
ここのコード試したらできたわ
ttps://superuser.com/questions/1741125/prevent-powershell-autocomplete-from-adding-dot-prefix

中身はさっぱりわからんけどw
0916名無し~3.EXE
垢版 |
2023/11/23(木) 11:03:13.37ID:rvVviA7X
オレは.\が付いてくれた方がありがたいけどな
0917名無し~3.EXE
垢版 |
2023/11/23(木) 15:11:54.31ID:gkbWlZbd
powershellではカレントディレクトリにある.exeや.ps1を実行するときには先頭に .¥ を付ける必要がある
だから補完時に .¥ を付けることだけを抑制するのはちぐはぐな対応で普通はデメリットが大きい
.¥ が必要になったのはセキュリティを考慮した仕様で、ネット等から入手したzip等の中にnotepad.exe等の既知のアプリと同名のマルウェアを仕込んで騙して実行させるようなトラップの類のリスクを低減するもの
0918名無し~3.EXE
垢版 |
2023/11/23(木) 15:14:00.98ID:gkbWlZbd
等を3つも書いてしまった
0920名無し~3.EXE
垢版 |
2023/11/24(金) 00:12:14.61ID:5Gk4stzh
>>917
.\notepad.exeを起動させるんですね
それって安全なの?
0921名無し~3.EXE
垢版 |
2023/11/24(金) 07:38:54.74ID:EE37UYxk
notepad.exeでカレントディレクトにあるやつが実行されるよりは
ファイル名だけで.¥まで補完すなってのはある
bashなんかは./からタイプしないと補完しないよな
0922名無し~3.EXE
垢版 |
2023/11/25(土) 22:03:33.70ID:I/DhCPtf
>>920
自ら補完して気づかず起動したらそれまで
この仕様変更によって守られるケースもあるし守れないケースもある
何事にも完璧はないし100じゃないから0じゃないか意味ないと腐すのは愚か者の考え方
セキュリティと利便性はいつだってトレードオフ
0923名無し~3.EXE
垢版 |
2023/12/24(日) 06:08:00.45ID:097QTqlv
bashの補完ルールがええわ~
0924名無し~3.EXE
垢版 |
2023/12/24(日) 13:53:39.88ID:FIsi2fsg
>>922
>セキュリティと利便性はいつだってトレードオフ
馬鹿言ってんじゃない。cmdとの互換性なんて要らないのにいまだにカレントディレクトリが探索パスの先頭にあるのが頭おかしいだけ
0925名無し~3.EXE
垢版 |
2023/12/24(日) 14:30:03.64ID:FIsi2fsg
ん、ちょっと変な書き方になった
要はコマンドライン先頭のコマンド名の箇所の補完でカレントディレクトリのファイルが一番最初にしかも丁寧に.\付きで出てくる仕様自体が
.\を付けないと実行できないようにされてる意味すら無くしてるわけで、毎回ユーザーに目視確認させるんじゃないよって話だ
0926名無し~3.EXE
垢版 |
2024/01/12(金) 20:50:17.30ID:2Wn8T/Wv
oh my poshって今知ったけどかなりイケてるなこれ
powershell専用と思いきや色んなOS、シェルに対応してる

Windows Terminalでpowershell7とwsl2を両方使う人はこれ使うとプロンプトラインに統一感出ていい感じよ
逆に統一感ありすぎてどっちがどっちか区別つかないかもしれんけど
0927名無し~3.EXE
垢版 |
2024/01/17(水) 01:06:35.44ID:rBZz05Ed
function hoge { echo "fuga" }
Set-PSReadLineKeyHandler -Chord Ctrl+u -Function hoge
としたらエラーになった
キーバインドでユーザ定義関数は指定できないの?
0928名無し~3.EXE
垢版 |
2024/01/19(金) 21:32:08.19ID:hyFU9fES
できない
-ScriptBlockを使え
0929名無し~3.EXE
垢版 |
2024/01/20(土) 03:21:07.48ID:Gf4/xoxf
thxまじか
めんどいな
0930名無し~3.EXE
垢版 |
2024/03/29(金) 00:17:07.99ID:WT8Xi9KP
何年目かでいうなら今年3年
アイスタイルふざけんなよ上げろや死ね
0931名無し~3.EXE
垢版 |
2024/04/07(日) 22:28:19.15ID:MstwRQ/H
~がhomeに展開されなくて困る
早いとこ対応してくれ
0932名無し~3.EXE
垢版 |
2024/04/22(月) 05:19:28.50ID:ZLqko9OV
サブディレクトリの下のファイル数をカウントして回るスクリプト
dir -attr D | %{ (dir $_.FullName -attr !D).Count }

おおむね動くんだけどディレクトリ名にスペースがあると0になってしまう
(dir $_).FullName的な挙動になってる気がするんだけどどう書けばいいの?
0933名無し~3.EXE
垢版 |
2024/04/22(月) 12:59:33.73ID:yZN8T9KO
>>932
こういうのもあるけど
(Get-ChildItem [Path] -Recurse | Measure-Object).Count
0934名無し~3.EXE
垢版 |
2024/04/22(月) 19:53:29.81ID:fgmThNOO
Get-ChildItem <target> -Directory | % {"{0}: {1}" -f $_.Name,$_.GetFiles().Count} でどうでしょうか
0935名無し~3.EXE
垢版 |
2024/04/22(月) 22:11:02.37ID:71yNPAYV
こう変えるだけでいいよ
dir -attr D | %{ (dir "$($_.FullName)" -attr !D).Count }
0936名無し~3.EXE
垢版 |
2024/04/23(火) 14:54:25.53ID:LS5oNk34
dir -attr D | %{ (dir -LiteralPath $_.FullName -attr !D).Count }
dir -attr D | %{ ($_ | dir -attr !D).Count }
0937名無し~3.EXE
垢版 |
2024/05/03(金) 01:59:19.93ID:P12O+xfO
落ちそう
0938名無し~3.EXE
垢版 |
2024/05/03(金) 17:36:25.11ID:yyxjECZa
パイプを使って渡しているだけだからそのような結果となってしまう
横着して一行で済ませようとしなけりゃいいんだよw
0939名無し~3.EXE
垢版 |
2024/05/03(金) 17:56:12.73ID:yyxjECZa
PowerShellでもIF構文とかも利用出来るんだからねw
0940名無し~3.EXE
垢版 |
2024/05/04(土) 00:00:28.27ID:XG1JdEno
ファイルフルパス中に含まれるスペースなどはコマンド区切り文字として扱われてしまうので実行時にエラーとなってしまう
for %%1 in ("%MediaPath%") do (set MediaPath=%%~s1)
短いファイル名へと一旦変更するなど工夫をして利用する
0941名無し~3.EXE
垢版 |
2024/05/12(日) 10:54:08.80ID:NYYvW3Fn
>>932
具体的にどんなディレクトリ名なの?
軽く検証してみたけどディレクトリ名にスペースを含んでも普通に動作する
角括弧を含むとダメで >>936 みたいに-LiteralPathを使う必要がある
っていう感じだった
レスを投稿する

レス数が900を超えています。1000を超えると表示できなくなるよ。

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