PowerShell ファイルの作成・上書き
ファイルの作成と上書きについて。これはPowerShellに限った話ではないですが、上書きの方法と権限がなければ出来ないよ、というお話。
まずはファイルの新規作成
PS C:\> New-Item abc.txt
ディレクトリ: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2019/04/13 16:28 0 abc.txt
そして同じことをもう一度実行するとすでにファイルがあるため、当然失敗します。
PS C:\> New-Item abc.txt
New-Item : ファイル 'C:\abc.txt' は既に存在します。
発生場所 行:1 文字:1
+ New-Item abc.txt
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (C:\abc.txt:String) [New-Item], IOException
+ FullyQualifiedErrorId : NewItemIOError,Microsoft.PowerShell.Commands.NewItemCommand
上書きするためには「-Force」オプションを使用します。
PS C:\> New-Item abc.txt -Force
ディレクトリ: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2019/04/13 16:34 0 abc.txt
しかし、権限を読み取り専用に変更すると「Force」オプションをつけてもファイルの上書きがされず、操作が失敗します。
PS C:\> New-Item abc.txt -Force
New-Item : パス 'C:\abc.txt' へのアクセスが拒否されました。
発生場所 行:1 文字:1
+ New-Item abc.txt -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (C:\abc.txt:String) [New-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : NewItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.NewItemCommand
こんな感じで。
上書きオプション付けてても失敗して、あれ?ということがあったのでここにメモ。
|