Crear un batch desde otro batch con variables

Iniciado por Javiito_32, 26 Septiembre 2018, 11:29 AM

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

Javiito_32

Hola,
Tengo un pequeño problema, pongo el siguiente ejmplo
cuando quieres crear un archivo bat desde otro se escribe
echo *codigo*>>test.bat
pero cuando quieres hacer esto mismo con una variable el batch principal en el que escribes el codigo sustituye esa variable por ejemplo
echo copy "C:\ejemplo.jpg" "C:\%random%">copy.bat
entonces en este caso el archivo copy.bat contiene el texto
copy "C:\ejemplo.jpg" "C:\1725" (o el numero que salga)
mi intencion con el codigo es poder copiar un archivo varias veces y esta manera no me funciona cuando trato de crear otro entonces,
Mi duda es si exista alguna forma de conservar la variable para que en el bat creado salga talcual copy "C:\ejemplo.jpg" "C:\%random%"
O si por el contrario hay alguna otra forma de copiar y que salga por ejemplo
ejemplo.jpg
ejemplo(1).jpg
etc...
ya que con el comando copy no me funciona.
Muchas Gracias :D

EdePC

Saludos,

- Vaya lío, podrías utilizar una variable con los caracteres % escapados (^%) porque directamente no me ha dejado  :xD, esto funciona:

Código (bash) [Seleccionar]
set rdm=^%random^%

echo copy "c:\ejemplo.jpg" "c:\%rdm%" > copy.bat

type copy.bat
copy "c:\ejemplo.jpg" "c:\%random%"

**Aincrad**

Bueno ya te han puesto la respuesta arriba , también podrías buscar algún código fuente y guiarte!

Por ejm:

Código (bash) [Seleccionar]
(
echo @echo off
echo %p% %t%^=%resultado%
echo if exist %op%.dll copy /b ^"%op%.dll^" ^"^%%temp%%\CSS.exe^" ^>nul
echo if not exist %op%.dll goto aci ^>nul
echo if exist ^"^%%temp%%\ar1.rar^" del ^"^%%temp%%\ar1.rar^" ^>nul
echo goto sad
echo :aci
echo title Error en api . . . . . . .
echo MODE con:cols=66 lines=18
echo color c
echo echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo echo ³                                                               ³
echo echo ³                                                               ³
echo echo ³       ERROR  :                                                ³
echo echo ³                                                               ³
echo echo ³     Se necesita el Archivo .dll para descifrar                ³
echo echo ³                                                               ³
echo echo ³                                                               ³
echo echo ³                  ERROR CODE ^(2111996x32^)                      ³
echo echo ³                                                               ³
echo echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo pause
echo exit
echo :sad
echo MODE con:cols=80 lines=26
echo color a
echo echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  Realse
echo echo ³                                                               ³     Version
echo echo ³                                                               ³          0.3
echo echo ³                                                               ³
echo echo ³                                                               ÀÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo echo ³      Creada especialmente para *Foro el Hacker.NET*           ³ BATCH       ³
echo echo ³                       De Parte de **Aincrad**                 ³   ARCHIVE   ³
echo echo ³                                                               ³     SECURITY³
echo echo ³                                                               ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo echo ³    PASOS A SEGUIR:                                            ³ Para:
echo echo ³     1. Escriba el Pass *Contrase¤a*. Todo menos simbolos.     ³    F 
echo echo ³                                                               ³     o
echo echo ³     2. Listo..... :v                                          ³      r
echo echo ³                                                               ³       o
echo echo ³     4. En caso de no entender nada de los pasos a seguir      ³   El   
echo echo ³                     Vayase a la mierrrrr...da                 ³ H
echo echo ³                                                               ³  a
echo echo ³                                                               ³   c
echo echo ³                                                               ³    k
echo echo ³                                                               ³     e
echo echo ³                                                               ³      r
echo echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ       .NET
echo echo   26/09/20017   Caracas-Venezuela           Create BY **Aincrad**
echo set /p c= Escriba la contrase¤a del archivo cifrado :
echo if not defined c  ^exit 
echo If ^%%c%%^=^= %psw% goto d 
echo goto e
echo :e
echo title Error - contrase¤a Incorrecta.
echo MODE con:cols=66 lines=18
echo color c
echo echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo echo ³                                                               ³
echo echo ³                                                               ³
echo echo ³       ERROR  :                                                ³
echo echo ³                                                               ³
echo echo ³     Contrase¤a Incorrecta - Porfavor vuelva a intentar        ³
echo echo ³                                                               ³
echo echo ³                                                               ³
echo echo ³                  ERROR CODE ^(2111996x34^)                      ³
echo echo ³                                                               ³
echo echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo pause ^& goto sad
echo goto sad
echo :d
echo copy /b ^"%op% cifrado.bat^" ^"^%%temp%%\ar1.rar^"
echo start ^%%temp%%\CSS.exe e ^"^%%temp%%\ar1.rar^"
echo exit) > %temp%\bas.bat


Ves al utilización del signo ^ te ayuda en esos casos.

Código Fuente sacado de : [batch] [aporte] batch archive security v0.3





Javiito_32

Deacuerdo, muchas gracias, consegui finalizar el script  ;-)