Рекурсивное переименование вообще не работает - PullRequest
0 голосов
/ 11 мая 2018

Поэтому я искал в других темах, как рекурсивно переименовывать файлы и папки в .bat, но это не работает вообще.

Мой код:

@ echo off
setlocal enabledelayedexpansion

set /p rut="Introduce folder: "

FOR /D /R %%x in ("%rut%"\*) DO (

cd %rut%
echo %cd%
pause
ren .\* "a"

)

exit

Но это только переименовывает файлы, которые находятся в первой папке, а не в остальных. Forfile вообще не будет работать с переменными.

То, что я хочу получить, это то, как я могу переименовать все в основной папке (включая подпапки), что бы это ни было, будь то файлы или папки, как «а», чтобы решить проблему Windows, связанную с слишком длинными маршрутами при попытке удалить полная структура, поэтому я не могу использовать решение " .txt" " .whither".

Решение PowerShell также будет правильным!

Большое спасибо

Редактировать Я добавил случайное число, чтобы увидеть, конфликтовало ли это имя, но нет, оно все еще не работает:

ren .\* "a%RANDOM%"

И переименование их из cmd работает так же, я имею в виду, если я напишу ren "folder" "whatever", это изменится, но в скрипте не работает с "*"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...