O próximo trecho de código mostra uma abordagem possível (uma de várias maneiras); Observe que o comando operacional ren
é meramente ecoado ( echo ren ...
) para fins de depuração:
@ECHO OFF
SETLOCAL EnableExtensions
goto :skipProcedures
:testPrefix
call set "newN=%%oldN:*%prfx%=%%"
if /i not "%oldN%"=="%newN%" if /i "%oldN%"=="%prfx%%newN%" set "ToRename="
goto :eof
:skipProcedures
pushd "Folder"
for /d %%D in (*) do (
pushd "%%D"
for /r %%F in (*) do (
for %%P in ("%%F\..") do (
set "ToRename=Yes"
set "prfx=%%~nxP_"
set "oldN=%%~nxF"
call :testPrefix
if defined ToRename (
echo ren "%%F" "%%~nxP_%%~nxF"
) else (
echo prefixed already "%%F" "%%~nxF"
)
)
)
popd
)
popd
Recursos (leitura obrigatória, incompleta):
- (referência de comando) Um índice A-Z da linha de comando do Windows CMD
- (particularidades adicionais) Sintaxe da linha de comando do shell do Windows CMD
- (
%~G
,%~1
etc. página especial) Argumentos da linha de comando (parâmetros) - (
%variable:StrToFind=NewStr%
etc.) Editar / substituir variável