X



Windows PowerShell Part5 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無し~3.EXE
垢版 |
2016/09/18(日) 14:06:24.15ID:aFEI7ykR
Windows PowerShell
http://technet.microsoft.com/ja-JP/scriptcenter/dd742419.aspx
オンラインヘルプ
https://technet.microsoft.com/ja-jp/library/bb978526.aspx

■パッケージのダウンロード
PowerShell 3.0 (Windows 7以降)
http://www.microsoft.com/en-us/download/details.aspx?id=34595

PowerShell 2.0 (Vista以前は3.0非対応)
http://support.microsoft.com/?kbid=926140

■参考
http://www.atmarkit.co.jp/fdotnet/special/powershell01/powershell01_01.html
http://oka326.blogspot.com/search/label/PowerShell
http://d.hatena.ne.jp/newpops/
http://blogs.msdn.com/PowerShell

■過去スレ
Windows PowerShell Part4
http://echo.2ch.net/test/read.cgi/win/1359719778/
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)
短いファイル名へと一旦変更するなど工夫をして利用する
レスを投稿する

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

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