この質問の背後にあるアイデアはシンプルですが、バッチスクリプトには新しく、ニュアンスによって私にとって不可能になっています。共通の親ディレクトリを共有するいくつかのソースディレクトリの内容をターゲットディレクトリに複製するための一連のシンボリックリンクを作成する必要があります。例:バッチスクリプトで修正されたパスを持つシンボリックリンクを作成していますか?
DstDir
FileA ~
FileB ~
SubDir
FileC ~
をシンボリックリンクを表示するために〜を使用した:シンボリックリンクを使用して作成する必要があり
SrcDirParent
SrcDirA
FileA
SrcDirB
FileB
SubDir
FileC
。 SrcDirParentとDstDirは、外部ファイルから絶対パスとして読み込まれます。どのファイル/フォルダがSrcDirParentにあるのか分かりませんし、関連するディレクトリのいくつかは既にDstDirに存在するかもしれませんが、他のものは存在しないかもしれません。それらが存在する場合は、シンボリックリンクを既存のコンテンツとマージする必要があります。
私が現在打っている障壁は、ファイルパスです。私はこのようなループのための2つを使用することを計画:
for /d %%M in (%SRC%\*) do (
for /r %%F in (%SRC%\%%M\*) do (
mklink %DST%\%%F %SRC%\%%M\%%F
)
)
しかし、これは%% Mと%% Fの相対ファイルパスを必要とし、これらの変数は絶対パスで満たされています。私はそれをどのように修正するか分からない。
私が予想しているもう1つの問題は、SRCとDSTが競合するファイルパスを持っていることです。既存のパスをシンボリックリンクで上書きしたくありません。
これはこれを投稿するのに最適な場所でした。前もって感謝します。
私はDstツリーを理解できません、SubDirA + Bはありませんか? – LotPings
SrcDirはすべてのソースディレクトリの親とされていました。この例をもう少し明確にするように編集しました。 – user258887
したがって、最初のサブディレクトリレベルを完全に削除したいのに、SubSubdirsは保持しますか? – LotPings