Этот маленький код перемещает папки в подпапки (кстати, я нашел это здесь в stackowerflow. Спасибо :)). Я добавил некоторые другие функции, и они хорошо работают, кроме одной части. Ниже приведен код, проблемная часть c является последней частью здесь.
Я хочу найти .txt файлы в папках и переместить их прямо под родительский каталог (эта часть работает). Но, к сожалению, файлы потеряли свои расширения, а также их имя изменилось на имя родительского каталога. Вы можете видеть это на прикрепленном изображении (я скопировал, но не переместил туда файл):
@echo on
setlocal EnableDelayedExpansion
set "ROOT_FOLDER=C:\Users\xy\Desktop\folder"
:: For each folder in root folder
cd "%ROOT_FOLDER%"
for /D %%a in (*) do (
cd "%%a"
:: Move all existent folders into "XY" folder
for /F "delims=" %%b in ('dir /B /A:D') do (
md XY 2> NUL
move "%%b" "XY\%%b"
)
:: Move all existent files into "XY" folder
md XY 2> NUL
move *.* XY
:: Move txt files under parent folder
for /R "XY" %%m in (*.txt) do move "\\?\%%m" "%%a"
cd ..
)
pause
Можете ли вы помочь, что я тут испортил?