汎用機メモっとくか

しごと用の(学習メモ&お気に入り保存)。

でっきるかな?PowerShell 002

2017年05月11日 05時30分38秒 | PowerShell

でっきるかな?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>