buenas a todos
necesito hacer un fragmento de código en batch que busque los nombres de las carpetas ( las subcarpetas que contengan *_C_*) y que almacene el nombre en una variable para poder trabajar con ella, necesito almacenar el nombre para poder modificarlo en caso de que tenga caracteres especiales y anadir ese nombre a cada fichero de la subcarpeta.
después de pasarme un buen rato intentando hacerlo sin éxito al final me he quedado sin ideas, lo estoy intentando con un for, pero ni modo, ¿a alguien se le ocurre algo?
mi código:
necesito hacer un fragmento de código en batch que busque los nombres de las carpetas ( las subcarpetas que contengan *_C_*) y que almacene el nombre en una variable para poder trabajar con ella, necesito almacenar el nombre para poder modificarlo en caso de que tenga caracteres especiales y anadir ese nombre a cada fichero de la subcarpeta.
después de pasarme un buen rato intentando hacerlo sin éxito al final me he quedado sin ideas, lo estoy intentando con un for, pero ni modo, ¿a alguien se le ocurre algo?
mi código:
Código (dos) [Seleccionar]
MKDIR "D:\Documents\testbatch\temp"
SET TEMPDossier="D:\Documents\testbatch\temp"
:Check
CD /D D:\Documents\testbatch
FOR /D %%x in (*_C_* ) do (
CALL :fct_log_Texte INFO " dossier disponible %%x"
setlocal enabledelayedexpansion
SET VarDossier= %%x
ECHO !VarDossier!
SET rename=!VarDossier!
echo %rename%
:: Quote the variable and remove the !
Set rename="%rename:!=%"
Setlocal EnableDelayedExpansion
For %%J In (^| ^& ^< ^> ^^ + ^( ^) \ / . @ # $ { } [ ] ' ; : , ? ` ^%% ^") Do (Set rename=!rename:%%J=!)
FOR /F %%i in ('dir /b " D:\Documents\testbatch\%VarDossier%\*"') do (
MOVE /Y " D:\Documents\testbatch\%VarDossier%\%%i" "%TEMPDossier%\%rename%_%%i"
dir /b /a " D:\Documents\testbatch\%VarDossier%\*" | >nul findstr "^" && (call :DirectoryEmpty) || (call :Check)