全3件 (3件中 1-3件目)
1
前回の続きファイルをエディタで開かずにファイルの中身だけ見たいことありますよね。うっかりエディタで開くと中身をいじってしまうかもしれないので、チラ見だけしたいってとき。で、これも「送る」にショートカットを作ることで解決できました。前回同様のフォルダで、ショートカットを作成。「項目の場所」に次の文字列を入れればOK。C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -w h "add-type -a system.windows.forms;function s($s){$d=[windows.forms.form]::new();new-object windows.forms.label -p @{parent=$d;text=gc -ra $s;autosize=1};$d.autoscroll=1;$d.showdialog()};s入る文字数が厳しいので パラメータ指定など切り詰めています。
2021.12.21
コメント(0)
powershellのスコープがいまいち理解できず、「関数を定義する関数」ってのが作れないでいました。スコープについて説明してるのって、大概が変数についての説明で、関数のスコープを指定するやり方が分からなかったのです。長い間悩んでいたのですが、先日、いいサイトを見つけました。function Global:関数名(パラメタ){関数実体}とやればいいだけなんですね。簡単じゃん。ちなみに、日本語でスコープを詳しく解説しているのも見つけたので、書いておきます。function Build-Function( [string]$name, [scriptblock]$definition ){ Invoke-Expression "function Global:$name{${definition}}"}Build-Function -name foo -definition { param( $p1, $p2 ) "bar`t$p1`t$p2"}foo a b
2021.12.20
コメント(0)
ファイルをエディタで開いて全選択→コピー→エディタ終了って面倒くさいよね。で、ファイルをテキスト読み出しして、クリップボードに送るメニューが作れないか考えてみました。できました。エクスプローラーのアドレスバーに%Appdata%\microsoft\Windows\SendToを打ち込み、開いたフォルダ内でショートカットの新規作成を行います。「項目の場所」に次の文字列を打ち込み、適当な名前(「テキストコピー」とか)で保存します。powershell -executionpolicy bypass -command "$OutputEncoding = [Console]::OutputEncoding;function c($f){gc $f|clip};c"これで、任意のファイルを右クリックし、「送る」の中から「テキストコピー」を選べばファイルの中身(テキストファイルであれば)をクリップボードに送れます。ちょっくら技術解説最初は単純にgc $args|clipみたいな形でやろうとしたけどうまくいきませんでした。ショートカットに与えられるパラメータは、「項目の場所」の文字列の最後に追加されるみたい。(訂正2021年12月20日)SendToに送られるファイルのパスは、ショートカットの「項目の場所」の文字列の最後に追加されるみたい。そこで、SendToに送られるファイルパスを受け取るためには、事前に関数化しておかないとならないってわけ。あと、日本語ファイルを素のままclip.exeに送ると文字化けします。そこで、おまじないとして、$OutputEncoding = [Console]::OutputEncodingの1行が必要になります。
2021.12.13
コメント(0)
全3件 (3件中 1-3件目)
1

