
次のようなディレクトリがあります
Root Folder
- Folder A
- Subfolder
- File1
- File2
- File3
- Folder B
- Subfolder
- File1
- File2
- File3
- Folder C
- Subfolder
- File1
- File2
- File3
ここで、サブフォルダとファイルを1レベル上に移動し、移動したらフォルダを削除したいので、次のようになります。
Root Folder
- Subfolder
- File1
- File2
- File3
- Subfolder
- File1
- File2
- File3
- Subfolder
- File1
- File2
- File3
Windows でこれを行うバッチ方法はありますか?
答え1
「サブフォルダー」の名前が重複しない「フォルダー [a|b]」のパターンがある場合、はい、これは非常に単純なバッチ スクリプトです。
for /d %%d in ("folder*") do call :doit "%%d"
exit /b
:doit
@echo.Moving contents of "%~1" to "%cd%"...
pushd "%~1"
forfiles /c "cmd /c move @file .."
popd
@echo.Removing "%~1"
rd "%~1"
exit /b
繰り返しますが、とてもフォルダ名にパターン(「フォルダ*」)が必要であることを理解することが重要です。これがコンテンツフォルダ内で複製される場合は、意思データが失われます。