2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

Windows PowerShell Part5

1 :名無し~3.EXE:2016/09/18(日) 14:06:24.15 ID:aFEI7ykR.net
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/

891 :名無し~3.EXE:2023/03/14(火) 08:50:14.12 ID:j55kjbdb.net
レジストリに起動設定ないのかな

892 :名無し~3.EXE:2023/03/14(火) 09:33:44.89 ID:nWRh+6Kt.net
手っ取り早いのはwinキー, p, w, s, Enter
必要に応じて矢印キーでrun as administratorを選ぶ
Windows11なら「設定」で標準のコンソールを変えることができる
Windows10なら %LOCALAPPDATA%\Microsoft\Windows\WinX の中身を手で書き換える
desktop.ini も隠れてるので書き換え忘れずに
ミスってメニュー壊しても知らんので自己責任で

893 :名無し~3.EXE:2023/03/14(火) 09:39:21.39 ID:nWRh+6Kt.net
わざわざWin+Xを書き換えなくてもwinキー, p, w, s, Enterが早いしどんなコマンドにも応用が効くのでおすすめ

894 :名無し~3.EXE:2023/03/14(火) 09:48:07.90 ID:nWRh+6Kt.net
応用が効くと書いたので蛇足しとく
Win+R でコマンドをフルに打たなくても最近はスタートメニューにフォーカスがあるときコマンドのインクリメンタルサーチができる
古いほうは powershell.exe、新しいほうは pwsh.exe という実行ファイル名なので pws まで打ち込むと候補が絞れる

895 :名無し~3.EXE:2023/03/14(火) 10:07:04.94 ID:HmOg2wGG.net
15年前以上前からできるのに「最近」とは一体...

896 :名無し~3.EXE:2023/03/14(火) 12:12:30.70 ID:hqk28afV.net
情報は提供しないけど上げ足取るのは大好き!

897 :名無し~3.EXE:2023/03/14(火) 17:57:08.92 ID:e1/OJBFe.net
それが5chクオリティ

898 :名無し~3.EXE:2023/05/10(水) 15:55:14.90 ID:yrDVFTC5.net
PowerShell でxmlファイルをtxtファイルに
返還することはできますか?
自動化したいんです。

899 :名無し~3.EXE:2023/05/10(水) 16:04:04.46 ID:D680VMto.net
>>898
手動化できているのなら、変換元と変換結果をどこかにあげて例示しよう

900 :名無し~3.EXE:2023/05/10(水) 16:35:51.40 ID:/5g/7Kec.net
返還することはできませんね

901 :名無し~3.EXE:2023/05/10(水) 18:17:47.39 ID:yrDVFTC5.net
では読み込んで、クリップボードにコピー
する事はできますか?

902 :名無し~3.EXE:2023/05/10(水) 20:13:02.47 ID:Fa16cDxR.net
はい、できます。$cp::SetText(変数)
最初にSystem.Windows.Formsを読み込んでね

903 :名無し~3.EXE:2023/07/24(月) 23:01:39.73 ID:DAFlq/MA.net
scoop入れてみたけどすごくいいな。使ってる人いない?

てかロクにpowershellのコマンドを知らないものだから irm get.scoop.sh | iex でなんでインストールできるのが不思議だった
賢いなこれw

904 :名無し~3.EXE:2023/08/01(火) 22:09:21.18 ID:GWOIvX2E.net
Get-Contentみたいにテキストファイルを一行毎に配列にしてくれるのを
ファイルじゃなくて標準入力からテキストデータを受け取って配列にする方法はありますか?

905 :名無し~3.EXE:2023/08/02(水) 03:46:42.44 ID:SQJ1trr4.net
セットしたい配列変数が $ary の場合
ヒア文字列で

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

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

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

としてください

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

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

の様にすれば行毎の文字列の先頭・末尾の空白を消して配列に取り込むことが出来るでしょう

906 :名無し~3.EXE:2023/08/02(水) 05:03:40.44 ID:SQJ1trr4.net
>>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 に書き換える必要があるでしょう

907 :名無し~3.EXE:2023/08/02(水) 14:48:43.93 ID:/Q0pkvbK.net
>>905
ありがとうございます。
あんたは神ですか?!

908 :名無し~3.EXE:2023/08/02(水) 17:45:22.89 ID:wAUoLFTd.net
いいえ、私はChatGPTです

909 :名無し~3.EXE:2023/08/06(日) 13:37:10.66 ID:trqiuMav.net
n番目の履歴の実行をInvoke-Historyではなくbashみたいに「!n」ってやる方法ありませんか?

910 :名無し~3.EXE:2023/08/06(日) 13:38:10.89 ID:trqiuMav.net
なお、腐れChatGPTの回答はなしでお願いします
聞いたら↓でできるとかデタラメ回答よこしてきたし
function global:history-command { Invoke-History $args[0] }; Set-Alias -Name ! -Value history-command -Option AllScope

911 :名無し~3.EXE:2023/08/09(水) 21:30:00.62 ID:4LDaBT3h.net
PowerShellでは!ではなくrを使う
あとrと番号の間に空白文字をれる
r 3
みたいな感じ

>>910の場合は!の前に&を付ける必要がある
PowerShellの!は論理否定演算子だからな
&! 3

912 :名無し~3.EXE:2023/08/14(月) 00:12:39.99 ID:KvGpu80N.net
文句ばっかし言っていないで、さっさと変数の中身くらいはデバッグで間違いに気付くようになれ

913 :名無し~3.EXE:2023/08/23(水) 18:22:03.67 ID:EtFVSrn5.net
>>911
ありがとうございます
遅レスですいません

914 :名無し~3.EXE:2023/11/19(日) 02:53:30.57 ID:mexehI6A.net
カレントフォルダにあるファイルをタブ補完したら頭に.\がつくのがうざい
つかないようにできん?

915 :名無し~3.EXE:2023/11/19(日) 03:26:27.64 ID:mexehI6A.net
ここのコード試したらできたわ
ttps://superuser.com/questions/1741125/prevent-powershell-autocomplete-from-adding-dot-prefix

中身はさっぱりわからんけどw

916 :名無し~3.EXE:2023/11/23(木) 11:03:13.37 ID:rvVviA7X.net
オレは.\が付いてくれた方がありがたいけどな

917 :名無し~3.EXE:2023/11/23(木) 15:11:54.31 ID:gkbWlZbd.net
powershellではカレントディレクトリにある.exeや.ps1を実行するときには先頭に .¥ を付ける必要がある
だから補完時に .¥ を付けることだけを抑制するのはちぐはぐな対応で普通はデメリットが大きい
.¥ が必要になったのはセキュリティを考慮した仕様で、ネット等から入手したzip等の中にnotepad.exe等の既知のアプリと同名のマルウェアを仕込んで騙して実行させるようなトラップの類のリスクを低減するもの

918 :名無し~3.EXE:2023/11/23(木) 15:14:00.98 ID:gkbWlZbd.net
等を3つも書いてしまった

919 :名無し~3.EXE:2023/11/23(木) 15:25:00.33 ID:jsjqXK6X.net
./

920 :名無し~3.EXE:2023/11/24(金) 00:12:14.61 ID:5Gk4stzh.net
>>917
.\notepad.exeを起動させるんですね
それって安全なの?

921 :名無し~3.EXE:2023/11/24(金) 07:38:54.74 ID:EE37UYxk.net
notepad.exeでカレントディレクトにあるやつが実行されるよりは
ファイル名だけで.¥まで補完すなってのはある
bashなんかは./からタイプしないと補完しないよな

922 :名無し~3.EXE:2023/11/25(土) 22:03:33.70 ID:I/DhCPtf.net
>>920
自ら補完して気づかず起動したらそれまで
この仕様変更によって守られるケースもあるし守れないケースもある
何事にも完璧はないし100じゃないから0じゃないか意味ないと腐すのは愚か者の考え方
セキュリティと利便性はいつだってトレードオフ

923 :名無し~3.EXE:2023/12/24(日) 06:08:00.45 ID:097QTqlv.net
bashの補完ルールがええわ~

924 :名無し~3.EXE:2023/12/24(日) 13:53:39.88 ID:FIsi2fsg.net
>>922
>セキュリティと利便性はいつだってトレードオフ
馬鹿言ってんじゃない。cmdとの互換性なんて要らないのにいまだにカレントディレクトリが探索パスの先頭にあるのが頭おかしいだけ

925 :名無し~3.EXE:2023/12/24(日) 14:30:03.64 ID:FIsi2fsg.net
ん、ちょっと変な書き方になった
要はコマンドライン先頭のコマンド名の箇所の補完でカレントディレクトリのファイルが一番最初にしかも丁寧に.\付きで出てくる仕様自体が
.\を付けないと実行できないようにされてる意味すら無くしてるわけで、毎回ユーザーに目視確認させるんじゃないよって話だ

926 :名無し~3.EXE:2024/01/12(金) 20:50:17.30 ID:2Wn8T/Wv.net
oh my poshって今知ったけどかなりイケてるなこれ
powershell専用と思いきや色んなOS、シェルに対応してる

Windows Terminalでpowershell7とwsl2を両方使う人はこれ使うとプロンプトラインに統一感出ていい感じよ
逆に統一感ありすぎてどっちがどっちか区別つかないかもしれんけど

927 :名無し~3.EXE:2024/01/17(水) 01:06:35.44 ID:rBZz05Ed.net
function hoge { echo "fuga" }
Set-PSReadLineKeyHandler -Chord Ctrl+u -Function hoge
としたらエラーになった
キーバインドでユーザ定義関数は指定できないの?

928 :名無し~3.EXE:2024/01/19(金) 21:32:08.19 ID:hyFU9fES.net
できない
-ScriptBlockを使え

929 :名無し~3.EXE:2024/01/20(土) 03:21:07.48 ID:Gf4/xoxf.net
thxまじか
めんどいな

930 :名無し~3.EXE:2024/03/29(金) 00:17:07.99 ID:WT8Xi9KP.net
何年目かでいうなら今年3年
アイスタイルふざけんなよ上げろや死ね

931 :名無し~3.EXE:2024/04/07(日) 22:28:19.15 ID:MstwRQ/H.net
~がhomeに展開されなくて困る
早いとこ対応してくれ

932 :名無し~3.EXE:2024/04/22(月) 05:19:28.50 ID:ZLqko9OV.net
サブディレクトリの下のファイル数をカウントして回るスクリプト
dir -attr D | %{ (dir $_.FullName -attr !D).Count }

おおむね動くんだけどディレクトリ名にスペースがあると0になってしまう
(dir $_).FullName的な挙動になってる気がするんだけどどう書けばいいの?

933 :名無し~3.EXE:2024/04/22(月) 12:59:33.73 ID:yZN8T9KO.net
>>932
こういうのもあるけど
(Get-ChildItem [Path] -Recurse | Measure-Object).Count

934 :名無し~3.EXE:2024/04/22(月) 19:53:29.81 ID:fgmThNOO.net
Get-ChildItem <target> -Directory | % {"{0}: {1}" -f $_.Name,$_.GetFiles().Count} でどうでしょうか

935 :名無し~3.EXE:2024/04/22(月) 22:11:02.37 ID:71yNPAYV.net
こう変えるだけでいいよ
dir -attr D | %{ (dir "$($_.FullName)" -attr !D).Count }

936 :名無し~3.EXE:2024/04/23(火) 14:54:25.53 ID:LS5oNk34.net
dir -attr D | %{ (dir -LiteralPath $_.FullName -attr !D).Count }
dir -attr D | %{ ($_ | dir -attr !D).Count }

937 :名無し~3.EXE:2024/05/03(金) 01:59:19.93 ID:P12O+xfO.net
落ちそう

938 :名無し~3.EXE:2024/05/03(金) 17:36:25.11 ID:yyxjECZa.net
パイプを使って渡しているだけだからそのような結果となってしまう
横着して一行で済ませようとしなけりゃいいんだよw

939 :名無し~3.EXE:2024/05/03(金) 17:56:12.73 ID:yyxjECZa.net
PowerShellでもIF構文とかも利用出来るんだからねw

940 :名無し~3.EXE:2024/05/04(土) 00:00:28.27 ID:XG1JdEno.net
ファイルフルパス中に含まれるスペースなどはコマンド区切り文字として扱われてしまうので実行時にエラーとなってしまう
for %%1 in ("%MediaPath%") do (set MediaPath=%%~s1)
短いファイル名へと一旦変更するなど工夫をして利用する

246 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★