Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - vikyBatch

#1
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:

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)