SQL-Server 2017 Express等でOneDrive上のファイルを読み書きする時は、オンライン上のURLを指定するのではなく、PC上の物理フォルダを指定して読み書きします。
すると、自動的にシステムがファイルを塩梅良く処理してくれる・・・という流れになっています。
その自分のPC上のOneDrive物理フォルダを取得するのに少し迷ってしまいました。
■OneDriveは環境変数から求める
結論から先に書かせて頂きますと、環境変数から求めたら出来ました。
($Env:OneDrive)
私の場合、複数のPCでOneDrive物理フォルダの場所が違うため、スクリプトを一本化するのに必要な内容でした。
■ちなみに特殊フォルダを取得する時(OneDriveは取得不可)
[Environment]::GetFolderPath("desktop")
"GetFolderPath" の引数 "folder" (値 "help") を型 "System.Environment+SpecialFolder" に変換できません: "値 "help" を型 "
System.Environment+SpecialFolder" に変換できません。エラー: "識別子名 help は有効な列挙子名に一致しません。次のいずれか
の列挙子名を指定して再試行してください:
Desktop, Programs, MyDocuments, Personal, Favorites, Startup, Recent, SendTo, StartMenu, MyMusic, MyVideos, DesktopDire
ctory, MyComputer, NetworkShortcuts, Fonts, Templates, CommonStartMenu, CommonPrograms, CommonStartup, CommonDesktopDir
ectory, ApplicationData, PrinterShortcuts, LocalApplicationData, InternetCache, Cookies, History, CommonApplicationData
, Windows, System, ProgramFiles, MyPictures, UserProfile, SystemX86, ProgramFilesX86, CommonProgramFiles, CommonProgram
FilesX86, CommonTemplates, CommonDocuments, CommonAdminTools, AdminTools, CommonMusic, CommonPictures, CommonVideos, Re
sources, LocalizedResources, CommonOemLinks, CDBurning""
発生場所 行:1 文字:1
+ [Environment]::GetFolderPath("help")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument