フォルダ構造は次のようになります:
R:\TOPFOLDER
├───Folder_1
│ │ other File.txt
│ │
│ ├───!Downloads
│ └───other_Folder
├───Folder_2
│ │ other File.txt
│ │
│ ├───!Downloads
│ └───other_Folder
├───Folder_3
│ │ other File.txt
│ │
│ ├───!Downloads
│ └───other_Folder
├───Folder_4
│ │ other File.txt
│ │
│ ├───!Downloads
│ └───other_Folder
└───Folder_5
│ other File (2).txt
│ other File.txt
│
├───!Downloads
└───other_Folder
フォルダ構造はそのままにしておきたい。各フォルダ(Folder_1 - Folder_n
)には、追加のファイルやサブディレクトリが含まれている可能性があります。それらをドライブ に残しておきたいR:
。ディレクトリとその内容を E:\ にコピーします!Downloads
。
結果は次のようになります。
E:\TOPFOLDER
├───Folder_1
│ └───!Downloads
├───Folder_2
│ └───!Downloads
├───Folder_3
│ └───!Downloads
├───Folder_4
│ └───!Downloads
└───Folder_5
└───!Downloads
robocopy コマンドを使用しようとしました。robocopy /s R:\FolderTOP\*\!Downloads E:\FolderTOP\
ワイルドカードはFolder_1 - Folder_n
例内のすべてのサブディレクトリ名を表すと考えましたが、エラーが発生します。
答え1
私は PowerShell をあまりよく知りませんが、それを実行できるバッチ ファイルを作成できます。
変更する必要があるのは、Source 変数と Destiny 変数だけです。
ソースを%userprofile%\desktop\Sourceに設定します
Destiny=%userprofile%\desktop\Destiny を設定します
更新日...2021/07/31
@echo off
:: Copy the contents of folders called "!Downloads" in the Source only
chcp 65001 > nul
Set Source=%userprofile%\desktop\Source
Set Destiny=%userprofile%\desktop\Destiny
Set "SWord=!Downloads"
if /i not "%Source:~-1%"=="\" set "Source=%Source%\"
if /i not "%Destiny:~-1%"=="\" set "Destiny=%Destiny%\"
pushd "%Source%"
for /f "Delims=" %%a in ('dir /s /ad /b *%SWord%*') do (
call :CopyFiles "%%~Fa"
)
exit
:CopyFiles
set "Folder=%~1"
Call set "Folder=%%Folder:%Source%=%%"
xcopy "%Folder%" "%Destiny%%Folder%\" /h /s /r /y /i /q
goto :EOF