トッカンソフトウェア

PowerShell ファイル関連



PowerShellのファイルの入出力をまとめます。


■サンプル:ファイルを読み込み、ループでまわす
				
#読み込むファイルパス
$readPath = "C:\work\powershell\read.txt"

#ファイルの読み込み
$readAry = (Get-Content $readPath) -as [string[]]

#ファイル中身でループ
foreach($readStr in $readAry){

    #ファイルの内容出力
    echo $readStr;
}


			

■サンプル:配列をファイルに書き込む
				
#出力するファイルパス
$writePath = "C:\work\powershell\write.txt"

#出力する配列定義
$writeAry = "aaa","bbb","","ccc"

#出力処理
$writeAry | Out-File $writePath -encoding UTF8


			

■サンプル:ファイルを読み込んで、(編集して)出力する
				
#読み込むファイルパス
$readPath = "C:\work\powershell\read.txt"

#出力するファイルパス
$writePath = "C:\work\powershell\write.txt"

#ファイルの読み込み
$readAry = (Get-Content $readPath) -as [string[]]

#出力する配列定義
$writeAry = @()

#ファイル中身でループ
foreach($readStr in $readAry){

    #ファイルの内容出力(ここで編集する)
    $writeAry += $readStr;
}

#出力処理
$writeAry | Out-File $writePath -encoding UTF8


			
■サンプル:ファイル一覧
				
#フォルダ指定
$path = "C:\work\powershell"

#ファイル一覧を取得
$fileList = Get-ChildItem -Path $path -Recurse  | Where-Object {$_.Attributes -eq "Archive"}

#ファイル毎にループする
foreach($fileWk in $fileList)
{
    #フルパス
    echo $fileWk.FullName
    #ファイル名
    echo $fileWk.Name
    #更新日
    echo $fileWk.LastWriteTime.ToString('yyyy/MM/dd HH:mm:ss')
}
			
Get-ChildItemに付けたオプション
-Path パスの指定
-Recurse サブフォルダがあれば再帰的に処理を行う

上記の例ではAttributesでパイプをかけてます。
Archive ファイル
Directory フォルダ

■サンプル:ファイルの属性取得
				
$path = "C:\work\powershell\read.txt"

#ファイルの属性を取得
$info = Get-ItemProperty $path 

#フルパス
echo $info.FullName
#ファイル名
echo $info.Name
#拡張子
echo $info.Extension
#サイズ
echo $info.Length
#更新日
echo $info.LastWriteTime.ToString('yyyy/MM/dd HH:mm:ss')


			

■サンプル:フォルダ作成、ファイル作成
				
#フォルダ作成
New-Item c:\new1\new2 -itemType Directory

#フォルダ削除
Remove-Item c:\new1\new2 -Recurse

#ファイル作成
New-Item c:\new1\new2\new3.dat -itemType File -Value "ファイルの内容"

#ファイル削除
Remove-Item c:\new1\new2\*.txt


			
フォルダ作成は親フォルダも作ってくれます。

■サンプル:パスの結合
				
#パスの結合
$fullPath = Join-Path "C:\work\powershell" "read.txt"

echo $fullPath


			



ページのトップへ戻る