Win10 ですが、7 以上でも同様に適用されると思います。
echo すると、 ~%USERPROFILE%
のドライブ文字が返されますC:\
。その通りです。
ただし、ドキュメント、画像、音楽などのフォルダーはドライブ上にありますH:
。Win10 は、ドライブからリダイレクトするため、どういうわけかこれを「認識」していますC:
。
以前は、%USERPROFILE%
フォルダー ツリーに沿ってファイルを参照していました (例: ショートカット内) が、現在は分割ドライブ システムを使用しているため、代わりにリダイレクトを参照する方法がわかりません。
何か案は?
答え1
PowerShell ウィンドウを開いて、次を実行します。
[Enum]::GetNames([Environment+SpecialFolder]) | ? {$_ -like "My*" } | % { $_ + ": " + [Environment]::GetFolderPath($_)}
次のような結果が返された場合:
MyDocuments: H:\...
MyMusic: H:\...
MyVideos: H:\...
MyComputer:
MyPictures: H:\...
誰かがこれらのフォルダーの場所を変更した場合は、ファイル エクスプローラーでこれらのフォルダーのプロパティを開き、タブをクリックすることで、場所を元に戻すことができますLocation
。
MyDocuments
ショートカットでの正しい場所を使用するには、次を使用します。
explorer.exe shell:::{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}\folder1\folder2
これにより、ファイルエクスプローラーで H:\documents\folder1\folder2 が開きます。
すべての特殊フォルダには固有のGUIDがあり、その一覧は次の場所にあります。テンフォーラム
これらの GUID を で直接使用することはできないと思いますcmd.exe
が、PowerShell では次の操作を実行できます。
cd $([Environment]::GetFolderPath('MyMusic'))
答え2
SETX
私は を使用して2 つの新しい環境変数 と を作成することで問題を解決しましたmyUSERPROFILE
。myHOMEDRIVE
これらは、OneDrive、Dropbox、GoogleDrive などのクラウドベースのデータを指すショートカットで使用されます。
使用事例
目的は、ローカル マシンからのショートカットを抽象化して、作業するすべてのマシンの一般性にすることです。
具体的には、SurfacePro 4、デスクトップ、ラップトップ(アンプを介してメディアセンター専用)、そしてクライアントが時々作業用に提供してくれるラップトップがあります。
それぞれに異なる機能があります。ユーザー名そしてホームドライブクライアントネットワークロットによって決定されます。
私のデスクトップには、クラウド内のフォルダを指すショートカットが4つあります。受信画像;読む;クイックリファレンス;受信文書ショートカットは次の形式になります
"%myUSERPROFILE%\Documents\Dropbox (Work)\Incoming docs"
どのショートカットをクリックしても、使用しているコンピューターに関係なく、クラウドベースのフォルダーが開きます。
ショートカット フォルダーにファイルをドロップすると、適切な場所に送信されます。
フォルダーの中には、データ リポジトリ内のファイルまたはフォルダーを指すショートカットを持つものもあります。
たとえば、クイック リファレンス フォルダーには、スケジュールや時刻表から技術データ、クライアント プロトコルまで、あらゆるものへのショートカットがあります。
これらはすべて、さまざまなデータ リポジトリに永続的に保存されます。私の技術ライブラリには、PDF だけで 3500 を超えるファイルがあります (メタデータの生成には calibre も使用しています)。
プロセス
変数を作成する
新しいマシンで作業する場合、このバッチ ファイルは管理者モードで実行されます。
:: setEnvVariables.bat
:: Step 1, set variables
echo Enter the home drive, default is %HOMEDRIVE%
SET /P localHOMEDRIVE=%HOMEDRIVE%
echo Enter the User prefix, default is %USERPROFILE%
SET /P localUSERPROFILE=%USERPROFILE%
SETX myHOMEDRIVE localHOMEDRIVE
SETX myUSERPROFILE localUSERPROFILE
echo: Step 2. check that they work
echo: =====: flip drives, land on home data drive
C:
echo: =====: directory of folders in root C:\ drive
DIR /b /ad
PAUSE
%myHOMEDRIVE%
cd\
echo: =====: directory of folders in root data drive
DIR /b /ad
PAUSE
cd %myUSERPROFILE%\Documents
echo: =====: directory of folders in Documents folder
DIR /b /ad
PAUSE
echo: ====: directory of folders in Dropbox folder
cd %myUSERPROFILE%\Documents\Dropbox (Personal)
DIR /b /ad
PAUSE
:: ...etc all the other cloud based repositories.
読書フォルダ内の典型的なショートカットは
"%OneDrive%\My Digital Editions\~ Knowledge\Consultancy\Business\Big Data_CDI_MDM\Path-to-Predictive-Analytics-and-Machine-Learning.pdf"
または、上で説明したようにファイルをフォルダーにドロップし、保持する価値があると思われる場合は適切なリポジトリ (フォルダー パス) に保存します。
クライアント マシンを返却するときに、2 つの環境変数を削除します... もちろんです!
ショートカットフォルダを作成する
私は上記のバッチ ファイルを含むフォルダーをクラウドに保存し、これらのフォルダー ショートカットへのショートカットをマスターします。
これらはデスクトップにドラッグしてドロップするだけです。
これらは単なるショートカットなので、「仮想フォルダー」または「仮想デスクトップ」と考えます。デスクトップにデータが保存されることはありません。特別なフォルダーが必要な場合 (クライアント プロジェクト用など)、クラウド内のフォルダーへのショートカットを作成するだけで、そこから環境変数が引き継がれます。
これで、新しいコンピューターを使用する準備ができました。