前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/
PowerShell -Part 3
レス数が950を超えています。1000を超えると書き込みができなくなります。
2018/10/09(火) 17:46:48.32ID:G4IJkzod
862デフォルトの名無しさん
2019/10/23(水) 07:15:39.57ID:4jedgKvl >>861
決め方テキトーだからあてにならんよ
決め方テキトーだからあてにならんよ
863デフォルトの名無しさん
2019/10/23(水) 08:54:10.32ID:1cyp8e5C >>861
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。
求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは
後者じゃないかと推測。
Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が
いくつかあるから、そういう案件もカウントされてるかもしれない。
自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
開発案件ではなく Windows のインフラ運用系案件の求人数が及ぼした結果だと思う。
求人の要件には「必須スキル」と「スキルが有るなら尚可」とあるけど、PowerShell のスキルは
後者じゃないかと推測。
Windows 系以外でも最近は管理用のスクリプティング環境として PowerShell の採用例が
いくつかあるから、そういう案件もカウントされてるかもしれない。
自分がガッツリ使ってるところだと vSphere かな。これのスクリプティング環境 (PowerCLI) は非常に整備されてて、とても便利。
864デフォルトの名無しさん
2019/10/27(日) 10:53:22.24ID:NsKzBf3L 詳しい方、教えて下さい!
シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。
誰か教えて下さい。
シェバン記法でバッチファイル化して実行したいのですが、自スクリプトパスを取得する方法がわかりません。
誰か教えて下さい。
865デフォルトの名無しさん
2019/10/27(日) 10:58:27.15ID:Lik42TLZ PowerShell、起動が遅いのがなー
なんとかならんかなー
なんとかならんかなー
866デフォルトの名無しさん
2019/10/27(日) 11:38:43.07ID:7LOf++Wk シェバン記法てなぁに?
867デフォルトの名無しさん
2019/10/27(日) 11:42:15.29ID:NsKzBf3L >>866
以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
以下を頭につけて拡張子を.batにするとダブルクリック実行できるようになるという記法のことです。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
868デフォルトの名無しさん
2019/10/27(日) 11:47:16.24ID:7LOf++Wk ありがと
869デフォルトの名無しさん
2019/10/27(日) 11:48:06.40ID:hJUpCTqv Ruby では、__FILE__ が現在評価中のスクリプトファイル名
シェバンは、Linux では、
#!/usr/bin/ruby
Windows に、シェバンってあるの?
.bat に、ruby .\script.rb
と書いて、ダブルクリックで起動したりする事はあるけど
.vbs でも、起動ファイルを作れる
シェバンは、Linux では、
#!/usr/bin/ruby
Windows に、シェバンってあるの?
.bat に、ruby .\script.rb
と書いて、ダブルクリックで起動したりする事はあるけど
.vbs でも、起動ファイルを作れる
870869
2019/10/27(日) 11:52:51.51ID:hJUpCTqv .bat に、powershell .\script.ps1
と書けば、ダブルクリックで起動できないか?
または、.vbs に、
CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0
と書けば、ダブルクリックで起動できないか?
または、.vbs に、
CreateObject("WScript.Shell").Run "powershell .\script.ps1", 0
871デフォルトの名無しさん
2019/10/27(日) 12:06:15.48ID:NsKzBf3L872869
2019/10/27(日) 12:21:42.69ID:hJUpCTqv よく知らないけど、powershell は、ダブルクリックで起動するような、
危険なことは出来ないのじゃないか?
危険なことは出来ないのじゃないか?
873デフォルトの名無しさん
2019/10/27(日) 12:38:31.80ID:pI9qWgY0 >>872
バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?
バッチやvbsならダブルクリックも安全だとおっしゃるのでしょうか?
874869
2019/10/27(日) 12:54:36.77ID:hJUpCTqv ダブルクリックで起動するのは、危険!
あくまで、個人用途
仕事ではやらない方が良い。
危険すぎる
あくまで、個人用途
仕事ではやらない方が良い。
危険すぎる
875デフォルトの名無しさん
2019/10/27(日) 12:57:45.64ID:gYi3Gz62 スクリプトのパスなら$MyInvocation.MyCommand.Path
876デフォルトの名無しさん
2019/10/27(日) 13:07:05.42ID:hKAQ6fM+ >>873
そのとおり
そのとおり
877デフォルトの名無しさん
2019/10/27(日) 13:40:21.93ID:Lik42TLZ878デフォルトの名無しさん
2019/10/27(日) 13:50:19.81ID:NsKzBf3L879869
2019/10/27(日) 14:01:18.04ID:hJUpCTqv ダブルクリックで起動するのは、危険!
ファイルをちょっと触っただけでも、
ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!
Linux のシェバンでも、
ファイル名だけじゃ起動できないようにしてるだろ
./ファイル名
みたいに、パス付きじゃないと起動しないようにしてる
これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから!
ダブルクリック起動では、多くの被害者が出てる
ファイルをちょっと触っただけでも、
ダブルクリックになって起動起動されてしまうから、Microsoft も禁止してる!
Linux のシェバンでも、
ファイル名だけじゃ起動できないようにしてるだろ
./ファイル名
みたいに、パス付きじゃないと起動しないようにしてる
これも、ファイル名だけでリターンキーを触ってしまうと、起動されてしまって危険だから!
ダブルクリック起動では、多くの被害者が出てる
880デフォルトの名無しさん
2019/10/27(日) 14:05:08.75ID:v/8cx3Zl vbsはファイルを全部パースしようとするからシェバン記法は使えないな
881デフォルトの名無しさん
2019/10/27(日) 14:05:49.29ID:Lik42TLZ ダブルクリックは危険!
ファイルをクリックしただけで起動しちゃう!
エクスプローラーからファイルをクリックできない
全部開いちゃう!
こうですか?
ファイルをクリックしただけで起動しちゃう!
エクスプローラーからファイルをクリックできない
全部開いちゃう!
こうですか?
882デフォルトの名無しさん
2019/10/27(日) 14:06:46.38ID:v/8cx3Zl 危険はexeでもバッチでも同じだろうに
powershellスクリプトだけを危険とする理由はない
powershellスクリプトだけを危険とする理由はない
883デフォルトの名無しさん
2019/10/27(日) 14:13:43.83ID:Lik42TLZ バッチファイルは危険じゃない!
APIが使えない。PowerShellスクリプトは何でもできる!
バッチファイルは他のスクリプトを呼び出すぐらいしかできない!
こうなるんですかね?
APIが使えない。PowerShellスクリプトは何でもできる!
バッチファイルは他のスクリプトを呼び出すぐらいしかできない!
こうなるんですかね?
884デフォルトの名無しさん
2019/10/27(日) 14:22:52.49ID:4/fJTv/Q >>878
引数の名前を指定して%~dpnx0を渡せばいいのでは
# D:\a.bat
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\"); & $s" -hoge %~dpnx0 %* & goto:eof
Param(
[string]$hoge
)
Write-Host $hoge
Write-Host $args[0]
Write-Host $args[1]
Write-Host $args[2]
pause
# D:\a.bat eof
D:\>a 0 1 2
D:\a.bat
0
1
2
続行するには、Enter キーを押してください...:
引数の名前を指定して%~dpnx0を渡せばいいのでは
# D:\a.bat
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\"); & $s" -hoge %~dpnx0 %* & goto:eof
Param(
[string]$hoge
)
Write-Host $hoge
Write-Host $args[0]
Write-Host $args[1]
Write-Host $args[2]
pause
# D:\a.bat eof
D:\>a 0 1 2
D:\a.bat
0
1
2
続行するには、Enter キーを押してください...:
885デフォルトの名無しさん
2019/10/27(日) 14:26:31.81ID:vcUKQgsd >>865
PC買いかえろよ…
PC買いかえろよ…
886デフォルトの名無しさん
2019/10/27(日) 14:31:11.79ID:vcUKQgsd887デフォルトの名無しさん
2019/10/27(日) 14:32:02.36ID:v/8cx3Zl マシン替えても相対的に速くなるだけで起動が遅いのは変わらないよ
888デフォルトの名無しさん
2019/10/27(日) 14:57:41.64ID:vcUKQgsd >>887
何を言ってるんだ?w
何を言ってるんだ?w
889デフォルトの名無しさん
2019/10/27(日) 15:18:23.27ID:FsLuN3Ol 前から気になってたんだがダブルクリックでps1が起動できない設計にどれだけのセキュリティの効能があるんだろな
batの中にPSスクリプトを埋め込んで実行ポリシーも上書きできるなら実質batのセキュリティレベルまで落ちる
batをメールに添付すると自動でフィルタリングされるけどps1なら安全だからフィルタされず拡張子を書き換える手間が省ける、というレベルの価値なのかな
batの中にPSスクリプトを埋め込んで実行ポリシーも上書きできるなら実質batのセキュリティレベルまで落ちる
batをメールに添付すると自動でフィルタリングされるけどps1なら安全だからフィルタされず拡張子を書き換える手間が省ける、というレベルの価値なのかな
890デフォルトの名無しさん
2019/10/27(日) 15:40:44.98ID:Lik42TLZ >>885
WSLから実行
$ time cmd.exe /c echo ok
ok
real 0m0.051s
user 0m0.000s
sys 0m0.016s
$ time powershell.exe -Command echo ok
ok
real 0m0.355s
user 0m0.000s
sys 0m0.016s
これは遅すぎる。
WSLから実行
$ time cmd.exe /c echo ok
ok
real 0m0.051s
user 0m0.000s
sys 0m0.016s
$ time powershell.exe -Command echo ok
ok
real 0m0.355s
user 0m0.000s
sys 0m0.016s
これは遅すぎる。
891デフォルトの名無しさん
2019/10/27(日) 15:41:31.49ID:Lik42TLZ892デフォルトの名無しさん
2019/10/27(日) 15:46:43.24ID:Lik42TLZ ちなみに-NoProfileをつけても大差ない
-NoProfileが無いから当然だが
-NoProfileが無いから当然だが
893デフォルトの名無しさん
2019/10/27(日) 15:47:02.36ID:Lik42TLZ × -NoProfileが無いから当然だが
○ Profileが無いから当然だが
○ Profileが無いから当然だが
894デフォルトの名無しさん
2019/10/27(日) 15:50:55.08ID:ho9vIROt895デフォルトの名無しさん
2019/10/27(日) 16:00:15.75ID:Lik42TLZ896デフォルトの名無しさん
2019/10/27(日) 16:37:26.26ID:rrcAfXPk897デフォルトの名無しさん
2019/10/27(日) 16:42:00.99ID:ElQsR2/N898デフォルトの名無しさん
2019/10/27(日) 17:18:28.01ID:cWrRHY0n ColorTool を使わずに同等のことって出来ませんかね。客先のマシンなので入れられないんです。
powershell.exe から ssh で Linux につないでるんだけど、青と黒の色が似通ってて、すごく見づらいのをなんとかしたいです。
powershell.exe から ssh で Linux につないでるんだけど、青と黒の色が似通ってて、すごく見づらいのをなんとかしたいです。
899デフォルトの名無しさん
2019/10/27(日) 17:20:23.02ID:ElQsR2/N プロパティから画面の色を変えるだけやろ?しらんけど
900898
2019/10/27(日) 18:07:06.31ID:cWrRHY0n901デフォルトの名無しさん
2019/10/27(日) 19:03:23.84ID:vcUKQgsd902デフォルトの名無しさん
2019/10/27(日) 19:07:32.81ID:f+MCPxtM Write-Hostは日本語環境だと遅いよ
903デフォルトの名無しさん
2019/10/27(日) 21:04:44.37ID:jAqyy8Vt904デフォルトの名無しさん
2019/10/28(月) 00:41:43.54ID:T67vLNbE >>903
出るでしょ、と言われてもそれ俺の疑問とズレてると思うんだが…
その理屈だと、ネットワークから入手したときに警告が出るからbatもそれなりに安全
ps1も同じように警告が出るなら同じように安全
だったらダブルクリックで実行できない仕様にしたことにはあまり意味がなかった、という結論だと受け取って良い?
出るでしょ、と言われてもそれ俺の疑問とズレてると思うんだが…
その理屈だと、ネットワークから入手したときに警告が出るからbatもそれなりに安全
ps1も同じように警告が出るなら同じように安全
だったらダブルクリックで実行できない仕様にしたことにはあまり意味がなかった、という結論だと受け取って良い?
905デフォルトの名無しさん
2019/10/28(月) 00:48:33.12ID:ML+fUsJB ダブルクリック実行が危険ってのは、オペレーション次第で意図しないタイミングで実行されるからだろ
別に実行されても問題ないタイプのものならいいけど
ファイル削除系とか実行されたら何らかの情報が変化しちゃう系だと困るってことだよ
あと、ダウンロードでフラグが立つのはNTFSに落とした場合のみでFATなら警告なしだよ
別に実行されても問題ないタイプのものならいいけど
ファイル削除系とか実行されたら何らかの情報が変化しちゃう系だと困るってことだよ
あと、ダウンロードでフラグが立つのはNTFSに落とした場合のみでFATなら警告なしだよ
906デフォルトの名無しさん
2019/10/28(月) 02:25:37.55ID:bqlyCkZ6 読み込むアセンブリを減らしたりして0.1秒減らした。
これでコマンド実行時間が0.45秒ぐらいになった。
でもPowerShellの起動時間0.3秒がやはり大きい
ネイティブexeにすりゃいいんだろうけど、そうすると気軽じゃなくなるからな
VBScriptでAPIが使えるならそっちのほうが速くなりそうだけど
これでコマンド実行時間が0.45秒ぐらいになった。
でもPowerShellの起動時間0.3秒がやはり大きい
ネイティブexeにすりゃいいんだろうけど、そうすると気軽じゃなくなるからな
VBScriptでAPIが使えるならそっちのほうが速くなりそうだけど
907デフォルトの名無しさん
2019/10/28(月) 06:35:24.37ID:kjzN6NI8 >>890
漏れは、パソコン工房のノートPC、CPU-i3, メモリ8GB, SSD-128GB で、
WSL, Ubuntu 16.04 で、2秒ぐらいw
~$ time powershell.exe -Command echo ok
ok
real 0m1.944s
user 0m0.000s
sys 0m0.031s
漏れは、パソコン工房のノートPC、CPU-i3, メモリ8GB, SSD-128GB で、
WSL, Ubuntu 16.04 で、2秒ぐらいw
~$ time powershell.exe -Command echo ok
ok
real 0m1.944s
user 0m0.000s
sys 0m0.031s
908907
2019/10/28(月) 06:41:24.18ID:kjzN6NI8 ただし、漏れはいつも、ノートPC を、
CPUを1つだけ使う、省エネモードにして使っている
それで、コンパイルが遅いのかも?
CPUを1つだけ使う、省エネモードにして使っている
それで、コンパイルが遅いのかも?
909デフォルトの名無しさん
2019/10/28(月) 08:13:17.35ID:SMRk50Ri910デフォルトの名無しさん
2019/10/28(月) 11:15:58.10ID:tEsfLTI+911デフォルトの名無しさん
2019/10/28(月) 12:44:27.32ID:tEsfLTI+ Windows Updateしたら大幅に下がったwww
今裏でなにかビルドしてるんかな? ngenとか?
$ time powershell.exe -Command echo ok
ok
real 0m1.390s
user 0m0.000s
sys 0m0.016s
今裏でなにかビルドしてるんかな? ngenとか?
$ time powershell.exe -Command echo ok
ok
real 0m1.390s
user 0m0.000s
sys 0m0.016s
912デフォルトの名無しさん
2019/10/28(月) 13:01:44.65ID:tEsfLTI+ これやったけど速くならない(´・ω・`)
https://stofublog.wordpress.com/2014/01/01/powershell%E8%B5%B7%E5%8B%95%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
アップデート前まで速かったのに・・・
https://stofublog.wordpress.com/2014/01/01/powershell%E8%B5%B7%E5%8B%95%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
アップデート前まで速かったのに・・・
913デフォルトの名無しさん
2019/10/28(月) 13:15:03.68ID:tEsfLTI+ なにかやったような記憶をたどり、
https://superuser.com/questions/1212442/powershell-slow-starting-on-windows-10
. (Join-Path ([Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) ngen.exe) update
↑これをPowerShell(管理者)で実行したら速くなった。(もとに戻った)
でも、一部指定されたファイルが見つかりません。とかエラーがでる。
よくわからんけど、このコマンドを実行してるだけ?
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update
https://superuser.com/questions/1212442/powershell-slow-starting-on-windows-10
. (Join-Path ([Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) ngen.exe) update
↑これをPowerShell(管理者)で実行したら速くなった。(もとに戻った)
でも、一部指定されたファイルが見つかりません。とかエラーがでる。
よくわからんけど、このコマンドを実行してるだけ?
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update
914デフォルトの名無しさん
2019/10/28(月) 13:24:18.55ID:tEsfLTI+ ここに情報があった。
https://blogs.msdn.microsoft.com/jpvsblog/2018/05/07/ngen/
v4.0.30319 というバージョンはいつ変わるんだろう?
https://blogs.msdn.microsoft.com/jpvsblog/2018/05/07/ngen/
v4.0.30319 というバージョンはいつ変わるんだろう?
915デフォルトの名無しさん
2019/10/28(月) 13:28:19.78ID:tEsfLTI+ Windows Updateしたせいかとも思ったけど、Visual Studio入れたからかもしれんな
ともかく、ngen updateしたらもとに戻った。
しばらく放置してても治るんだろうけど
ともかく、ngen updateしたらもとに戻った。
しばらく放置してても治るんだろうけど
916デフォルトの名無しさん
2019/10/28(月) 21:32:05.62ID:WDVIXPLl 強力そうなので始めてみたんだけど、たかが文字コード変換がなんで
さらっとできないんだろう…
さらっとできないんだろう…
917デフォルトの名無しさん
2019/10/28(月) 22:42:59.54ID:8eaZgTeu C#もどうせ遅いんだろ?と思ってやってみたら単純なHello Worldだと0.1秒程度だった
PowerShellよりマシなのか。読み込むアセンブリで変わってくるとは思うけど
C++だと0.05秒。圧倒的だが情報が少なすぎる。
PowerShellよりマシなのか。読み込むアセンブリで変わってくるとは思うけど
C++だと0.05秒。圧倒的だが情報が少なすぎる。
918デフォルトの名無しさん
2019/10/28(月) 22:43:45.66ID:i5LGlrvW PowerShellがあれば、文字コード変換も簡単です。
http://scripting.cocolog-nifty.com/blog/2010/01/powershell-6147.html
http://scripting.cocolog-nifty.com/blog/2010/01/powershell-6147.html
919デフォルトの名無しさん
2019/10/29(火) 02:18:49.94ID:vBIRwBaE echoが遅いことが判明
$ time powershell.exe -Command echo 1
1
real 0m0.378s
user 0m0.000s
sys 0m0.000s
$ time powershell.exe -Command 1
1
real 0m0.264s
user 0m0.000s
sys 0m0.000s
$ time powershell.exe -Command "[Console]::WriteLine(1)"
1
real 0m0.243s
user 0m0.000s
sys 0m0.000s
$ time powershell.exe -Command echo 1
1
real 0m0.378s
user 0m0.000s
sys 0m0.000s
$ time powershell.exe -Command 1
1
real 0m0.264s
user 0m0.000s
sys 0m0.000s
$ time powershell.exe -Command "[Console]::WriteLine(1)"
1
real 0m0.243s
user 0m0.000s
sys 0m0.000s
920デフォルトの名無しさん
2019/10/29(火) 03:21:02.42ID:rBco2ITF echoというよりコマンドレットの呼び出しにコストがかかるんだよ
Write-Outputの使用はあらゆる場面で完全に無意味で無駄だから使わない方がいい
それについてブログ書いてる人もいた
https://get-powershellblog.blogspot.com/2017/06/lets-kill-write-output.html
Write-Outputの使用はあらゆる場面で完全に無意味で無駄だから使わない方がいい
それについてブログ書いてる人もいた
https://get-powershellblog.blogspot.com/2017/06/lets-kill-write-output.html
921デフォルトの名無しさん
2019/10/29(火) 03:55:39.34ID:vBIRwBaE >>920
そうなんだろうなって気はしてた。
まだどれがコマンドレットかそうでないかよくわかってないレベルだけどw
間にハイフンで区切られてて、呼び出しにカッコがいらないのはコマンドレットだよな?
Where-Objectとかもなくせば速くなるんだろうか?
ようやくC++で実装できそうな情報が溜まってきた。
Unicodeとか訳わかんねぇ。情報がバラバラで多すぎてわからん。
たったこれだけ、たったこれだけなのに!
C++で実装したら0.1秒。だけどバイナリのビルドが必要
PowerShellだと0.45秒。
CLIコマンドとしてサクッと実行したときの体感速度が違いすぎる。
そうなんだろうなって気はしてた。
まだどれがコマンドレットかそうでないかよくわかってないレベルだけどw
間にハイフンで区切られてて、呼び出しにカッコがいらないのはコマンドレットだよな?
Where-Objectとかもなくせば速くなるんだろうか?
ようやくC++で実装できそうな情報が溜まってきた。
Unicodeとか訳わかんねぇ。情報がバラバラで多すぎてわからん。
たったこれだけ、たったこれだけなのに!
C++で実装したら0.1秒。だけどバイナリのビルドが必要
PowerShellだと0.45秒。
CLIコマンドとしてサクッと実行したときの体感速度が違いすぎる。
922デフォルトの名無しさん
2019/10/29(火) 04:14:17.53ID:rBco2ITF >>921
Where-Objectはめちゃくちゃ遅くて遅いコマンドレットの代表みたいな奴だから俺はスクリプトでは一切使わない
同様にForEach-Objectも遅い
何作ってるのか知らんけどC++はスレ違いだからあとはC++のスレでやった方がいい
powershell自体の起動も含めてC++で作ったバイナリより遅いとかいう情報は当然すぎるから要らない
Where-Objectはめちゃくちゃ遅くて遅いコマンドレットの代表みたいな奴だから俺はスクリプトでは一切使わない
同様にForEach-Objectも遅い
何作ってるのか知らんけどC++はスレ違いだからあとはC++のスレでやった方がいい
powershell自体の起動も含めてC++で作ったバイナリより遅いとかいう情報は当然すぎるから要らない
923デフォルトの名無しさん
2019/10/29(火) 05:02:05.41ID:CowX2GWO Ruby が良い。
Rubyから、クリップボード・powershell も使える。
CP932・UTF-8 の変換もできる
C++ は、コンパイル済みだろ。
コンパイル自体に時間が掛かるのは、Rubyも同じ
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
Rubyから、クリップボード・powershell も使える。
CP932・UTF-8 の変換もできる
C++ は、コンパイル済みだろ。
コンパイル自体に時間が掛かるのは、Rubyも同じ
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
924デフォルトの名無しさん
2019/10/29(火) 08:28:11.85ID:+8XugnXa925デフォルトの名無しさん
2019/10/29(火) 20:44:54.51ID:ltL5L5Cn こっちのスレにも書いておくわ
Windows 10 1903、PowerShell 5.1.18362.145
コマンドプロンプトを起動して
C:\Users\user> powershell.exe -Command [Console]::OutputEncoding
BodyName : iso-2022-jp
EncodingName : 日本語 (シフト JIS)
HeaderName : iso-2022-jp
WebName : shift_jis
WindowsCodePage : 932
IsSingleByte : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 932
C:\Users\user> powershell.exe -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8
UTF8に変更する。
C:\Users\user>powershell.exe -Command [Console]::OutputEncoding
BodyName : utf-8
EncodingName : Unicode (UTF-8)
HeaderName : utf-8
WebName : utf-8
WindowsCodePage : 1200
IsSingleByte : False
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 65001
それぞれ、別々のコマンドとして実行してるのに、状態が変わるのはなんで?
Windows 10 1903、PowerShell 5.1.18362.145
コマンドプロンプトを起動して
C:\Users\user> powershell.exe -Command [Console]::OutputEncoding
BodyName : iso-2022-jp
EncodingName : 日本語 (シフト JIS)
HeaderName : iso-2022-jp
WebName : shift_jis
WindowsCodePage : 932
IsSingleByte : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 932
C:\Users\user> powershell.exe -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8
UTF8に変更する。
C:\Users\user>powershell.exe -Command [Console]::OutputEncoding
BodyName : utf-8
EncodingName : Unicode (UTF-8)
HeaderName : utf-8
WebName : utf-8
WindowsCodePage : 1200
IsSingleByte : False
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 65001
それぞれ、別々のコマンドとして実行してるのに、状態が変わるのはなんで?
926デフォルトの名無しさん
2019/10/29(火) 20:47:41.08ID:ltL5L5Cn しかも powershell.exe だけに影響する話じゃなくて、
UTF8で書いたファイルを、コマンドプロンプト起動直後、
シフトJISモードのときにtypeしたら文字化けし、
UTF8に変更してからtypeしたら文字化けしない
明らかにコマンドプロンプトの状態が変わってる。
だけどchcpの値は932のままかわらない
ただ、PowerShellを使ってUTF8モードに切り替えると、
chcpすると「Active code page: 932」と英語で表示される。
UTF8で書いたファイルを、コマンドプロンプト起動直後、
シフトJISモードのときにtypeしたら文字化けし、
UTF8に変更してからtypeしたら文字化けしない
明らかにコマンドプロンプトの状態が変わってる。
だけどchcpの値は932のままかわらない
ただ、PowerShellを使ってUTF8モードに切り替えると、
chcpすると「Active code page: 932」と英語で表示される。
927デフォルトの名無しさん
2019/10/29(火) 23:40:36.07ID:JjalWxmz928デフォルトの名無しさん
2019/11/02(土) 12:30:04.56ID:1PdjBp7d この場合は True が返るんだけど(当然)、
Test-Path ${home}\ntuser.dat
こうした場合は False になる。
$a = [xml]('<?xml version="1.0"?><File>${home}\ntuser.dat</File>')
Test-Path $a.File
XML の値は、
"${home}\ntuser.dat" こうじゃなくて
'${home}\ntuser.dat' というふうに格納されてるようなんだけど、変数を展開するにはどうすればいいだろう?
Test-Path ${home}\ntuser.dat
こうした場合は False になる。
$a = [xml]('<?xml version="1.0"?><File>${home}\ntuser.dat</File>')
Test-Path $a.File
XML の値は、
"${home}\ntuser.dat" こうじゃなくて
'${home}\ntuser.dat' というふうに格納されてるようなんだけど、変数を展開するにはどうすればいいだろう?
929デフォルトの名無しさん
2019/11/02(土) 12:34:23.96ID:dF2n6ehk invoke expression
930デフォルトの名無しさん
2019/11/02(土) 13:07:31.37ID:esIitHWU931928
2019/11/02(土) 13:33:24.00ID:1PdjBp7d932デフォルトの名無しさん
2019/11/02(土) 18:11:26.52ID:71SUtLbe Powershellの演算子の優先順位が判るサイトが見当たらないんですがどっかにないですかね
演算子をカテゴリ毎に紹介してるサイトは多く見かけるんですが
演算子をカテゴリ毎に紹介してるサイトは多く見かけるんですが
933デフォルトの名無しさん
2019/11/02(土) 20:16:26.21ID:0WeT0cpY934デフォルトの名無しさん
2019/11/03(日) 02:57:41.69ID:hkCRv+PE >>933
ありがとうございます!助かりました!
ありがとうございます!助かりました!
935デフォルトの名無しさん
2019/11/03(日) 03:32:58.98ID:Y1hBQ+8z どういたしまして!
936デフォルトの名無しさん
2019/11/05(火) 23:35:55.67ID:ocMK86pm m(_ _)m誰か教えて下さい。
フォーム上にコンボボックスを大量配置したいのですが、一つずつ以下みたいに書くと大変です。
これを関数化する方法を教えて下さい。
$Combo = New-Object System.Windows.Forms.Combobox
$Combo.Location = New-Object System.Drawing.Point(10,10)
$Combo.size = New-Object System.Drawing.Size(150,30)
フォーム上にコンボボックスを大量配置したいのですが、一つずつ以下みたいに書くと大変です。
これを関数化する方法を教えて下さい。
$Combo = New-Object System.Windows.Forms.Combobox
$Combo.Location = New-Object System.Drawing.Point(10,10)
$Combo.size = New-Object System.Drawing.Size(150,30)
937デフォルトの名無しさん
2019/11/06(水) 02:58:52.99ID:+N82MWJ/ >>936
普通に$comboを返す関数を作ればいい
winforms書く時は使えるバージョンならusing namespaceを使った方がすっきりする
個人的にNew-Objectは遅いだけなのでなるべく使わない
暗黙の型変換を積極的に使うとすっきりする
using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms
function Create-ComboBox($Left, $Top, $Width, $Height) {
$combo = [ComboBox]::new()
$combo.Location = "$Left, $Top"
$combo.size = "$Width, $Height"
$combo
}
$form = [Form]::new()
$form.Size = "200,200"
$combo1 = Create-ComboBox -Left 10 -Top 50 -Width 160 -Height 30
$form.Controls.Add($combo1)
$form.ShowDialog()
普通に$comboを返す関数を作ればいい
winforms書く時は使えるバージョンならusing namespaceを使った方がすっきりする
個人的にNew-Objectは遅いだけなのでなるべく使わない
暗黙の型変換を積極的に使うとすっきりする
using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms
function Create-ComboBox($Left, $Top, $Width, $Height) {
$combo = [ComboBox]::new()
$combo.Location = "$Left, $Top"
$combo.size = "$Width, $Height"
$combo
}
$form = [Form]::new()
$form.Size = "200,200"
$combo1 = Create-ComboBox -Left 10 -Top 50 -Width 160 -Height 30
$form.Controls.Add($combo1)
$form.ShowDialog()
938デフォルトの名無しさん
2019/11/06(水) 05:18:39.91ID:+Isovp9U x.Size="1,2"
こういう書き方できるの知らんかった
こういう書き方できるの知らんかった
939936
2019/11/06(水) 11:38:21.31ID:viRYf3W9940デフォルトの名無しさん
2019/11/06(水) 19:25:34.62ID:du9DeY6n >>939
5.0以上にアップグレードすればWin7でも使えるんじゃないの?インストール不可なだめだけど
5.0以上にアップグレードすればWin7でも使えるんじゃないの?インストール不可なだめだけど
941936
2019/11/08(金) 09:54:16.57ID:RMGDBEVY 緊急でお願いします。マルチバイト文字のパディングのやり方を教えて下さい。サンプルコードがあると嬉しいです。
942デフォルトの名無しさん
2019/11/08(金) 10:20:36.03ID:weGpRZzk 入力と出力のサンプル位出したら
943デフォルトの名無しさん
2019/11/08(金) 10:20:37.27ID:bpFYbH+Z うっかり bash と間違えて ctrl+R と打ってしまったんだけど、PowerShel でも同じように機能したんだな。
軽く感動したわ。
軽く感動したわ。
944デフォルトの名無しさん
2019/11/08(金) 10:41:43.51ID:wfK2aVsO ctrl + Alt + shift + /
でショートカット一覧が出るからざっと見ておくといいよ
でショートカット一覧が出るからざっと見ておくといいよ
945デフォルトの名無しさん
2019/11/08(金) 11:47:48.53ID:bt2cbsd4 PowerShellにディレクトリ、ファイル名以外の
補完機能ってあるの?
補完機能ってあるの?
946デフォルトの名無しさん
2019/11/08(金) 12:27:29.71ID:CJ6EXBGx947デフォルトの名無しさん
2019/11/08(金) 14:17:43.58ID:bpFYbH+Z948デフォルトの名無しさん
2019/11/08(金) 14:41:45.11ID:wfK2aVsO ついでに以下のコマンドで画面だしとけばチートシートになるよ
Get-PSReadLineKeyHandler | ogv
Get-PSReadLineKeyHandler | ogv
949デフォルトの名無しさん
2019/11/08(金) 17:13:11.44ID:bpFYbH+Z >>948
「俺専用PowerShellアンチョコ.txt」に記録した。重ね重ねありがとう。
「俺専用PowerShellアンチョコ.txt」に記録した。重ね重ねありがとう。
950デフォルトの名無しさん
2019/11/09(土) 17:39:02.10ID:LvjWth2U powershellで海外にアクセスできないように設定できますか?
951デフォルトの名無しさん
2019/11/09(土) 17:42:01.74ID:FbsqDOHf 海外とは
952デフォルトの名無しさん
2019/11/10(日) 05:11:31.78ID:47iDVxCF そういやweb鯖のサンプルがあったな
ピロキシぐらい作れるよな
ピロキシぐらい作れるよな
953デフォルトの名無しさん
2019/11/10(日) 16:21:24.11ID:LxY6Tlm9 海外鯖を経由しない通信にしたい。
それか海外からの通信をファイアウォールで
全部ブロックしたい。
って考えたらhostsしかないかな?
めんどくさいな。
それか海外からの通信をファイアウォールで
全部ブロックしたい。
って考えたらhostsしかないかな?
めんどくさいな。
954デフォルトの名無しさん
2019/11/10(日) 16:35:30.22ID:z3CQn4/q 自分ですべての経路把握する必要あるし無理じゃね?
955デフォルトの名無しさん
2019/11/10(日) 17:15:59.31ID:iyIsn8nz >>953
曖昧すぎてアドバイスのしようがないな
曖昧すぎてアドバイスのしようがないな
956デフォルトの名無しさん
2019/11/10(日) 17:17:57.36ID:uhrgfz89 hostsに一体いくつ「海外」とやらのホストを指定するのやら
OS側でやるのが適当なのかそれ
業務用なのか個人用なのかもわからん
OS側でやるのが適当なのかそれ
業務用なのか個人用なのかもわからん
957デフォルトの名無しさん
2019/11/10(日) 17:54:04.00ID:otD8Z0ZU windows updateも海外なのか?
958デフォルトの名無しさん
2019/11/10(日) 20:34:29.07ID:LxY6Tlm9 すみませんでした。そうなるとなんかややこしくなりそうなのでやめます。
ブラウザの拡張でやりますわ。
ありがとうございました。
ブラウザの拡張でやりますわ。
ありがとうございました。
959デフォルトの名無しさん
2019/11/11(月) 08:27:46.29ID://Nnw6zP Windows PowerShell を使用した高度なセキュリティ管理を使用する windows Defender ファイアウォール
https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-firewall/windows-firewall-with-advanced-security-administration-with-windows-powershell
https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-firewall/windows-firewall-with-advanced-security-administration-with-windows-powershell
960デフォルトの名無しさん
2019/11/11(月) 17:18:43.20ID:WYwNeQAp ありがとうございました。
961デフォルトの名無しさん
2019/11/18(月) 08:47:59.75ID:604fXs7f タブストップ中コンボボックスの文字の背景色を青ではなく薄水色にしたいのですが、やり方がわかりません。ご存知の方、よろしくお願い申し上げます。
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【インバウンド】中国政府、日本行き航空便の減便指示、2026年3月末まで「当面の措置」 [1ゲットロボ★]
- 【高市関税キター!!】個人輸入・少額輸入品への税優遇見直しへ…中国の通販サイトなどからの大量輸入を懸念 [1ゲットロボ★]
- たぬかな、結婚していた SNSで報告 生配信では入籍時期も説明 祝福殺到「おめでとう!」「幸あれ」 [muffin★]
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 [ごまカンパチ★]
- 自民 国会議員の歳費 月額5万円引き上げ 今国会での成立目指す [どどん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- トランプ「おい、高市早苗!習近平の訪米までおとなしくしてろ!」トランプ「習さん、ジャップに言っておきましたんで」 [175344491]
- 【悲報】小泉進次郎、総裁選が終わりネトウヨに媚び出した途端飯画像をあげるだけで毎回万バズするようになるwwwwwwwwwwww [802034645]
- 足立区轢き逃げ犯、やはり「日本人」だった事が判明...ネトウヨが死ねばよかったのに [237216734]
- トランプ聖帝「ミャンマー軍事政権はようやっとる。だからミャンマー人はさっさと祖国に帰れ」 [878970802]
- たぬかな、結婚していた [268244553]
- 【動画】慶應准教授の有野氏、高市答弁の問題点を理路整然と指摘しまいネトウヨ発狂wwwwwwwwwwww [271912485]
