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ú

Mensajes - vikyBatch

#1
Muchas gracias  por los consejos  voy a probar.
#2
muchas gracias   por respoder , en realidad  no está todo  el código.
Aclaraciones:
fct_log_Texte y DirectoryEmpty son 2 funciones, el primero  nos permite crear  un log  y  el segundo cunao hacer alggo específico cuando la carpeta está vacia.
zipper&tom, es  otra funcion que  hace  otra cosa.

mi intención es, desde un carpeta concreta buscar  todas lass subcarpetas que contenga  una *_C_*  , vérificar que no tengan caracteres speciales como nombre de subcarpeta, en el caso de contener algún caracter  extraño , suprimirlo los  caracteres especiales del nombre de supcartepa,  luego  utlizar ese nombre (modificado o no ) y añadir el  nombre a todos  sus ficheros.
cuando las  variables están en  duro  funciona, pero  cuando  quiero almacenar el valor  en una variable desde  un for, no puedo, mis  variables   "set VarDossier=%%x" y " SET rename=%VarDossier%" están vacias


#3
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)