でっきるかな?PowerShell 002
参考リンクは、後日まとめて記載。-STAいれるとマルチコアの恩恵は、受け取れなさそう。
ダイアログに力入れてないので、試すならShift_JISの".txt"を選んでください。
<実行>
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
PS C:\Users\user> PowerShell -STA -ExecutionPolicy RemoteSigned -f fileIO_01.ps1
PS C:\Users\user>
-STA は、dialog使うときだけ必要。
<fileIO_01.ps1>
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$dlgOP = New-Object System.Windows.Forms.OpenFileDialog
$dlgSV = New-Object System.Windows.Forms.SaveFileDialog
$RC_Open = $dlgOP.ShowDialog()
$dlgSV.FileName = "aaa001.txt"
$RC_Save = $dlgSV.ShowDialog()
if(($RC_Open -eq 1) -and ($RC_Save -eq 1)){
$path_IN = $dlgOP.FileName
$path_Out = $dlgSV.FileName
$oSR = New-Object System.IO.StreamReader $path_IN , ([System.Text.Encoding]::GetEncoding("Shift_JIS"))
$oSW = New-Object System.IO.StreamWriter $path_OUT , False ,([System.Text.Encoding]::GetEncoding("UTF-8"))
while($oSR.Peek() -ne -1){
$oSW.WriteLine($oSR.ReadLine())
}
$oSR.Close()
$oSW.Close()
}
<おまけ>Googleで"PowerShell ファイル分割"で検索してでてくる。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13155160628
役にたちました。
改行コードLfでも読んでくれます(出力はCrLfになるけど)。
CPUシングルCOREだとめちゃめちゃ遅いです。
マルチCOREだと速い。
ShifJIS読むなら
-Encoding default;を
-Encoding String;
参考文献&リンク
うごかして学ぶWindows PowerShell
9-5.使い捨ての実行ポリシーをつかおう
Kindle版 柏原基規 (著)
.NETダイアログが表示されずスクリプトが止まる問題の対策
"読書とプログラミングを中心とした覚書ブログ"様
http://funcs.org/907
HOME http://funcs.org/
[PowerShell] ファイル分割スクリプト
”Effectiveさお”様
http://h-sao.com/blog/2014/07/17/divide-file-using-powershell/
=>さらに源流
powershellが超便利
ファイル分割スクリプト
”fivegangstersのブログ”様
http://blog.livedoor.jp/fivegangsters/tag/powershell
<20170523追記sta>PowerShellでレコード件数カウント
$c = 0;gc C:\Users\user\KEN_ALL.csv -ReadCount 30000 -Encoding String | % { $c = $c + $_.Length };Write-Host $c"件"
PS C:\Users\user> $c = 0;gc C:\Users\user\KEN_ALL.csv -ReadCount 30000 -Encoding String | % { $c = $c + $_.Length };Wri
te-Host $c"件"
124114件
PS C:\Users\user>
<20170523追記sta>
<20170713追記sta>
「himorogiの日記」様 アーカイブ (いろいろ後発だな私の記事、被ってるのあるし)
http://d.hatena.ne.jp/himorogi/archive
「コマンドの達人」様 PowerShell(バイナリ書き込み)
https://life-is-command.com/powershell-set-content/
<20170713追記end>