(SOLUCIONADO) [BATCH] ¿Como crear una variable de esta manera?...

Iniciado por Eleкtro, 10 Enero 2012, 05:02 AM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

Ya hice un post sobre este tema pero no lo encuentro por ningún lado xDDD y me vuelve a dar problemas.


necesito correr un script desde un .REG, osea que el script tiene que tener todas las sentencias en una sola línea, y en esa linea tengo que crear una variable, y usarla.

Ejemplo:

cmd.exe /k @echo off & For /F %%a in ('Dir /B "%%WINDIR%%" ^| Find /V /C ""') do (Set /A Numero=%%a , Numero+=5) & Mode con cols=60 lines=%%Numero%% & pause

El script funciona a medias, Porque se muestra el número de la operación, se muestra la suma correcta, osea que la variable se crea, pero no encuentro modo alguno de usar (Mostrar) la variable "número"...

He probado usando en la variable un %, dos %%, tres y hasta 5 %%%%%, xD.
He probado expandiendo la variable con !, y activando set local enabledelayedexpansion... no se que más probar

PD: Aparte, aunque no lo necesito, pero por curiosidad... ¿Como se usaria un "CALL" en una sola linea? Se puede? lo he probado sin éxito xD.








Eleкtro

#1
Bueno lo he conseguido, Aunque no me ha quedado otro remedio que pasar el resultado a un txt...

Ah por si no habia quedado claro, la intención de esto era ajustar el tamaño de la ventana del CMD, basandose en el número de carpetas que tuviera el directorio...

CMD.exe /C @Echo OFF & For /F %%a in ('Dir /B /S /AD "%%windir%%" ^| Find /V /C ""') do (Set /A Numero=%%a , Numero+=10 >"%%Temp%%\NumeroTemp.Tmp") & For /F %%a in ('Type "%%Temp%%\NumeroTemp.Tmp"') do (If %%a GTR 75 (Mode con cols=120 lines=75) ELSE (Mode con cols=120 lines=%%a)) && pause




EDITO: aqui el code entero xDDD, No hagan este mal ejemplo de batch sin indentación en sus casas xDDDDDD

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Obtener privilegios para esta carpeta]
"NoWorkingDirectory"=""
"position"="bottom"

[HKEY_CLASSES_ROOT\Directory\shell\Obtener privilegios para esta carpeta\command]
@="CMD.exe /C @Echo OFF & Title Obtener privilegios para: %%UserName%% & For /F %%a in ('Dir /B /S /AD \"%1\" ^| Find /V /C \"\"') do (Set /A Numero=%%a , Numero+=10 >\"%%Temp%%\\NumeroTemp.Tmp\") & For /F %%a in ('Type \"%%Temp%%\\NumeroTemp.Tmp\"') do (If %%a GTR 75 (Mode con cols=120 lines=75) ELSE (Mode con cols=120 lines=%%a)) && If Exist \"%%WINDIR%%\\system32\\nircmd.exe\" (nircmd win center ititle \"Obtener Privilegios\") & Color 0F & Cls & Echo+ & Echo. Procesando todos los archivos y subdirectorios de... & Echo. %1 & Ping -n 2 LocalHost >Nul & Echo+ & Dir /B /S /AD \"%1\" && Echo+ & takeown /f \"%1\" /R /D S >nul && Icacls \"%1\" /Grant %%UserName%%:(F) /T | find /i \"Correctamente\" && Echo+ & Echo. Privilegio de \"Acceso total\" (F) concedido al usuario \"%%UserName%%\"   Ok! && Del /Q \"%%Temp%%\\NumeroTemp.Tmp\" & Ping -n 8 LocalHost >Nul && Exit"






un saludo