發表文章

計算行數

 把它输出到Measure-Objectcmdlet Import-Csv C:\Directory\file.csv | Measure-Object 把它输出到Measure-Objectcmdlet Import-Csv C:\Directory\file.csv | Measure-Object (Import-Csv C:\Directory\file.csv).count 使用IO.StreamReader从磁盘加载文件并使用变量对每行进行计数。这将内存使用量降低到非常合理的25MB,并且要快得多,需要大约30秒来计算1GB文件中的行或6GB文件中的几分钟。不管你的文件有多大,它都不会吃掉不合理的RAM数量: [int]$LinesInFile = 0 $reader = New-Object IO.StreamReader 'c:\filename.csv'  while($reader.ReadLine() -ne $null){ $LinesInFile++ }

用findstr找目錄下(含子目錄)的檔案內容

 https://blog.yowko.com/findstr-grep-on-windows/ 找目錄下(含子目錄)的檔案內容 /i : 忽略大小寫 /s: 含子目錄 findstr /i /s xxx *.*

use powershell to sample files

https://codertw.com/%E5%89%8D%E7%AB%AF%E9%96%8B%E7%99%BC/390141/ PowerShell讀取文字檔: Get-Content,獲取指定位置的項的內容。 語法:Get-Content [-Path] <檔案路徑> [-Path]由方括號引起,表示可以寫,也可以不寫;不寫則預設後面是檔案路徑,寫了就指名道姓的說後面是檔案路徑。 直接執行這樣一個命令,PowerShell將會把檔案的內容輸出到控制檯上,如果你是想看看檔案的內容,那這樣做就Perfect! 但有時候,你想玩點高難度的運作——想把檔案翻開來對裡面的內容進行修改,那後面你可以用管道來把它傳出去,或者直接把它賦值給一個變數。舉例如下: 複製程式碼  程式碼如下:$file = Get-Content “d:\1.txt” Get-Content “d:\1.txt” | %{Write-Host $_.Replace(“日”,”太陽”)} #這樣就可以實現把d:\1.txt的內容,逐一輸出,並把“日”字,替換為太陽。 獲取檔案的前N行: Get-Content d:\1.txt -totalcount 100 | set-Content top100.txt 說明:這裡的Set-Content top100.txt是把前面一個語句的結果,寫一個新的檔案——top100.txt 如果這個時候,你想獲取檔案的第100行,你會不會想到去做一個很複雜的迴圈?如果是,那說明你有很好的程式設計素養。但是PowerShell告訴你不用如此麻煩。舉例如下: 複製程式碼  程式碼如下:(Get-Content d:\1.txt -TotalCount 100)[-1] 說明:啥!你看到了啥?!如果你簡單的看()[-1],那是不是像陣列呢?-1表示最後一個陣列元素,那就表示前100行的最後一行,那是不是第100行呢?! 最後要說一下,這個命令返回的是一個物件陣列,可以用ForEach-Object(別名是%)去遍歷它。非常方便,前面你應該已經看到“太陽”的例子了