PowerShellのファイル出力先を実行ユーザのデスクトップにする


PowerShellのファイル出力先を、実行したユーザのデスクトップにする場合に、「$env:USERPROFILE + “\Desktop\”filename.txt”」と指定するのは間違い。

この場合、ローカルディスクでは無く、ファイルサーバ上にDesktopが置かれるような環境に対応できない。
「[Environment]::GetFolderPath(“Desktop”)」で取得するのが正しい。

実際に、どういう風になるのか見てみる・・・

PS C:\Users\osakanataro> $env:USERPROFILE + "\Desktop"
C:\Users\osakanataro\Desktop

PS C:\Users\osakanataro> [Environment]::GetFolderPath("Desktop")
\\fileserver1\Redirects$\osakanataro\Desktop

Desktop以外に指定できる内容については「Environment.SpecialFolder Enumeration」参照のこと。
「Added in the .NET Framework 4.」なっているものは、Windows7/WindowsServer2008などの古めのWindowsでは動かないので注意。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください