PowerShellで自動化スクリプトを書く場合、環境に合わせた特殊フォルダのパスを知る必要があり、調べてみました。
特殊フォルダの名前の一覧を列挙
[Environment+SpecialFolder].GetEnumNames()
実行結果
Desktop
Programs
MyDocuments
Personal
Favorites
Startup
Recent
SendTo
StartMenu
MyMusic
MyVideos
DesktopDirectory
MyComputer
NetworkShortcuts
Fonts
Templates
CommonStartMenu
CommonPrograms
CommonStartup
CommonDesktopDirectory
ApplicationData
PrinterShortcuts
LocalApplicationData
InternetCache
Cookies
History
CommonApplicationData
Windows
System
ProgramFiles
MyPictures
UserProfile
SystemX86
ProgramFilesX86
CommonProgramFiles
CommonProgramFilesX86
CommonTemplates
CommonDocuments
CommonAdminTools
AdminTools
CommonMusic
CommonPictures
CommonVideos
Resources
LocalizedResources
CommonOemLinks
CDBurning
こちらの名前を使い特殊フォルダのパスを取得できます。
特殊フォルダのパスを取得
SendTo(送る)の場合
[Environment]::GetFolderPath([Environment+SpecialFolder]::SendTo)
結果
C:\Users\karet\AppData\Roaming\Microsoft\Windows\SendTo
使い方1:SendToフォルダのファイルの一覧を取得
ls ([Environment]::GetFolderPath([Environment+SpecialFolder]::SendTo))
Environment]::GetFolderPath([Environment+SpecialFolder]::SendTo)の結果を文字列として扱いたい場合()で囲む
lsはGet-ChildItemのエイリアスでパスを指定するとそのフォルダ内のファイルやフォルダの一覧を返すコマンドレット。
使い方2:SendToフォルダをエクスプローラーで開く
explorer ([Environment]::GetFolderPath([Environment+SpecialFolder]::SendTo))
コメント