PowerShellの結果を何処かにテキストファイルとして保存して、それをメモ帳で開く。
なんてのは以前やったことがあるが、これは未保存のテキストデータを直接メモ帳で表示しようというもの。
WindowsAPIを使って本格的にやっている。
プロファイルに入れておくと便利なこともあるかなぁ。
PowerShellの結果を何処かにテキストファイルとして保存して、それをメモ帳で開く。
なんてのは以前やったことがあるが、これは未保存のテキストデータを直接メモ帳で表示しようというもの。
WindowsAPIを使って本格的にやっている。
プロファイルに入れておくと便利なこともあるかなぁ。
大体判ったつもりでいるパイプラインだが、今回はちょっとハマった。
以下の処理はあるフォルダに有るソースファイルを対象に、まとめて文字列置換しようと言うもの。
今回はファイル名に対しても同じ置換を行っている。
大したことはない処理なのだが、なぜか思い通りの結果にならない。
001 002 003 004 005 006 007 008 009 010 011 012 013 | Param( $path, $BeforeString, $AfterString ) dir $path -File *.cs | %{ $tString = gc $_.FullName Move-Item $_.FullName ($_.FullName + ".old") $newName = $_.Name -replace $BeforeString,$AfterString $newPath = Join-Path $_.DirectoryName $newName $tString -replace $BeforeString,$AfterString | Set-Content $newPath } |
“HenoUmu”を”KeizokKbn”に変換しているのだが、なぜか変換後のファイルが再び変換対象に含まれている。
先頭の1個だけ。
不思議というか、きっとみんなハマりますよね・・・。
とりあえず、カッコを付けて、(dir $path –File *.cs) | ~
とやるんですかね。
以前作ったスクリプトのスリープがうまくいかなくなってしまった。
復帰に失敗するのだ。
マウスクリックにより復帰し始めてHDとかにアクセスしにはいくのだが画面が黒いままだんまり。
Windows7からWindows10にアップグレードしてからも問題なく動いていたが、どうも先日のWindowsUpdateが宜しくなかったようだ。
試しに、スクリプトでは無くメニューからスリープすると問題ないので、このスクリプトからのスリープはメニューからのスリープと全く同等の物ではないのだろう。
マザーボードの最新ドライバーとかを入れると直るのかもしれないが、現象からすると微妙な感じ。
メニューと全く同等のスクリプトが組めれば良いだけなのだが、なんとも・・・・。
電源周りはどうしてもハードとの相性が出てくるので昔から混沌としてあまり関わりたくない。
ちょっとだけ調べたので一応メモだけしておく。
我らが牟田口さんが紹介していた方法。
rundll32.exe powrprof.dll,SetSuspendStateを使う方法
こいつはPCの休止状態が有効の場合は休止してしまうようだ。
休止を無効にするのはここらへんが参考になりそうだが、特に使いはしないのだが貧乏性なので無効にしてしまうのはちょっともったいない気がする。
ここでちょっと脱線すると、そもそも休止状態って有効になっているっぽいんだけどどこから使うの?と疑問に思う。メニューとかには見当たらない。
電源設定とかを見渡しても良く判らない・・・。
というか、この電源設定メニューってカオスすぎ。
どうするとここまでいい加減なメニュー体系になるのかなぁ・・・。
とりあえず以下を参考にすれば使えるようになりそう。
スタートメニューの電源オプションに休止状態を表示する方法
というわけで、どんどん深みにはまっていきそうなので、さしあたってショートカットとかがないのか探してみる。(画面をロックする時のWin+Lみたいなやつ)
一発で出来る奴は見当たらなかったので、さしあたって、
「Windowsキー + Xキー」 ⇒ 「Uキー」 ⇒ 「Sキー」
って感じだろうか。
また、電源周りの説明は以下に結構詳しくまとまっている。
Windows をコマンドラインやショートカットからお手軽にスリープさせる方法
ここで紹介しているSysinternalsとかを使うのが一番スマートなのかもしれない。
(が、標準装備じゃないのがちょっと残念)
---
その後使っているとやっぱり復帰失敗が度々発生。
いくら調べてもこれといった解決策は見つからず・・・。
必ず失敗するわけでは無いことから、致命的な問題では無いと思われる。
微妙なタイミング的問題か・・・。
ここでふと、先日会社のPCの調子が悪くなって思いあぐねていたところ、メモリーの挿し直しで解決したことを思い出した。
思いつきでUSB機器(といってもキーボードとマウスだけだが)を挿し直す。
(ドライバーが自動で再インストールされる)
なんと、見事に解決。\(^o^)/
1ヶ月ほど経ったが失敗は無し。
Windows10に搭載されたPowerShellのバージョンが5.0となった。
Windows7時代の2.0から比較的速いペースで上がってきたために自宅や会社で接するPowerShellのバージョンが混沌としている。
表記の資料がWikipediaに纏まっていたのでコピペしておく。
項目 | 1.0 | 2.0 | 3.0 | 4.0 | 5.0 |
---|---|---|---|---|---|
Windows Server 2003 | ○SP1 | ○SP2 | × | × | × |
Windows Server 2003 R2 | ○SP1 | ○SP2 | × | × | × |
Windows Server 2008 | → | ○SP1 | ○SP2 | × | × |
Windows Server 2008 R2 | → | ◎ | ○SP1 | ○SP1 | ○SP1 |
Windows Server 2012 | → | → | ◎ | ○ | ○ |
Windows Server 2012 R2 | → | → | → | ◎ | ○ |
Windows XP x64 | ○ | × | × | × | × |
Windows XP | ○SP2 | ○SP3 | × | × | × |
Windows Vista | ○ | ○SP1 | × | × | × |
Windows 7 | → | ◎ | ○SP1 | ○SP1 | ○SP1 |
Windows 8 | → | → | ◎ | × | × |
Windows 8.1 | → | → | → | ◎ | ○ |
Windows 10 | → | → | → | → | ◎ |
「◎」標準搭載、「○」インストールして利用可能、「→」上位バージョン標準搭載、「×」利用不可
Defender用のコマンド(Function)が提供されているそうな。Version3かVersion4あたりからでしょうか。
PS> Start-MpScan -ScanType QuickScan -ScanPath “C:” |
なぜか私のWindows8.1環境ではエラーになった。(Windows10ではOK)
調べてみたが、ほとんど事例がなかったので私のPC環境がどこかおかしそうな気がする。