PowerShell 7

PowerShell 6

制御

スリープ

  • 繰り返し実行
    while (1) {Start-Process C:\bin\test.bat; -WindowStyle Hidden; Start-Sleep -s 300}

コマンド

Start-Process

Select-Object

ファイル操作

  • カレントフォルダにある *.zip の中身を カレントフォルダに全て展開する
    Get-ChildItem -Recurse -File -Include *.zip | ForEach { Expand-Archive $_ -DestinationPath . }
  • 指定した行数でファイル分割
    $i=0; cat [分割対象ファイル] -ReadCount [行数] | % { $_ > [分割ファイル名]$i.txt;$i++ }

Tips

  • Powershell で省略しないで表示する
    • 以下のオプションを使用します。フォーマットとして自動サイズ調整、および自動改行のオプションを使用します。
      Format-Table -AutoSize -Wrap

tail

> Get-Content C:\var\log\nlog-own-2017-11-27.log -wait -tail 10 -Encoding UTF8

touch

  • 作成日時
    > Set-ItemProperty .\test.txt -Name CreationTime -Value "2018/06/12 15:30:00"
  • 更新日時
    > Set-ItemProperty .\test.txt -Name LastWriteTime -Value "2018/06/12 15:30:00"

grep

  • 実行例
    type target.txt | sls "foo" | sls "bar" | % { $_.ToString() } > hoge.txt
  • 「ファイル名:行番号」を出力しない
    • これが一番良さそう
      cat [ファイル名] | sls [検索文字列] | Out-String -Width 4096
    • select Line はイマイチ
      select-string [検索文字列] | select Line | Out-String -Width 4096
      select-string [検索文字列] | select Line | Format-Table -Property * -AutoSize | Out-String -Width 4096
  • OR検索
    Select-String -Path "*.txt" -Pattern "hello","world"
  • Not検索
    Select-String -Path "*.txt" -NotMatch -Pattern "hello","world"
  • 空行削除
    (gc [ファイル名] | ? {$_.trim() -ne "" }

wc -l

(Get-Content [ファイル] | Measure-Object).Count
  • カレントディレクトリ以下のソースファイルの総行数をカウント
    (dir -include *.cs,*.cpp,*.h,*.idl,*.asmx,*.js,*.css -recurse | select-string .).Count

cut

uniq

  • 項目毎の件数を求める(uniq -c)
    cat hoge.txt | group $_ | select name,count

which

C#

ログ監視

  • 5秒お気にGet-Processを実行して./test.logに追記
    1..100 | %{Get-Process | Out-File ./test.log -Append; sleep 5}

メール送信

SQL Server

WCF

サンプル


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-05-19 (火) 00:00:51 (15d)