Lutvun Цитата: Есть две папки "OK" и "incomplete", в каждой из этих папок есть много подпапок в которых есть файлы разных форматов с именами типа таких basslovers_united_vid.rar~80.239.159.9_3179_3754.avi.rar и таких ~80.239.159.9_3179_3754.avi.rar. Нужно чтоб батник проверял все папки на наличие файлов и переименовывал файлы с именем оставляя в них только то, что находитса перед тыльдой, а файлы без имени которые начинаютса с тыльды перемещял в подпапку "noname" и удалял тыльду.
Код: @echo off
setlocal enabledelayedexpansion
call :rename "c:\auto 3\delme222\OK"
call :rename "c:\auto 3\delme222\incomplete"
goto :eof
:rename
pushd %~1
for /r %%a in (*) do (
set full_path_to_file=%%a
set path_to_file=%%~dpa
set filename=%%~nxa
for /f "tokens=1,2 delims=~" %%a in ('echo !filename!') do (
set first_part_name=
set second_part_name=
set first_part_name=%%a
set second_part_name=%%b
if defined second_part_name (
ren "!full_path_to_file!" !first_part_name!
) else (
ren "!full_path_to_file!" !first_part_name!
if not exist noname\ mkdir noname\
move "!path_to_file!\!first_part_name!" noname\
)
)
)
popd
goto :eof