crear un script con ficheros .bat bajo windows

Iniciado por H1@, 24 Diciembre 2007, 00:04 AM

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

H1@

Buenas ::)

Estoy intentando hacer un script utilizando las propias funciones de windows de línea de comandos y ficheros de procesamiento por lotes ejecutables (*.bat)

El script lo único que debe hacer es copiar un fichero  en la carpeta "all users" en "inicio" (para que se ejecute en el arranque del sistema)

[".\Documents and Settings\All Users\Menú Inicio\Programas\Inicio"]

He estado provando ha hacer el script bajo la línea de comandos pero se presentan algunos inconvenientes:

Citar
xcopy "...\malware.bat" "...\All Users\Menú Inicio\Programas\Inicio\malware.bat"

attrib -h "...\All Users\Men£ Inicio\Programas\Inicio\malware.bat"

Pienso que sería mejor agregar el fichero "malware.bat" directamente a través del registro con REG ADD


El problema es que no se me ocurre como poder especificar "rutas relativas" para que la copia se efectúe desde el directorio que alberga el fichero malware.bat y se copie directamente en "all users" "inicio" :-[

alguna sugerencia :o


#include <iostream>

using namespace std;

void cerebroDeBush()
  {
    char cerebro[3];
    cout << "¿Cuantas neuronas tiene Bush?\n";
    cin.get(cerebro,2);
    cout<<"Numero de neuronas: "<<cerebro<<endl;
   }

int main()
     {
       cerebroDeBush();
        return 0;
     }

sirdarckcat

si tienen acentos, el batch tienes que reemplazar los acentos por "?".

Vlad_Asen

xcopy "%USERPROFILE%\Escritorio\No tocar\fichero1.txt" "%ALLUSERPSROFILE%\Men? Inicio\Programas\fichero1.txt"

yo he intentado copiar archivos y no doy con la forma de hacerlo bien. probe con xcopy y con copy pero nada...


GroK

Código (dos) [Seleccionar]
copy .\malware.bat "%ALLUSERSPROFILE%\Men£ Inicio\malware.bat"

Con el punto (.) te refieres al directorio relativo al fichero. Con dos puntos (..) al directorio superior relativo al fichero. Es lo que sale al hacer 'dir' en cualquier directorio.

Y en cuanto a lo del "Menú Inicio" me costó, finalmente usando el símbolo de la libra (£) funcionó.

Saludos
"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant


sirdarckcat

que complicados..

C:\Documents and Settings\Admon>cd Men? Inicio

C:\Documents and Settings\Admon\Menú Inicio>

GroK

Cita de: sirdarckcat en  4 Enero 2008, 20:58 PM
que complicados..

C:\Documents and Settings\Admon>cd Men? Inicio

C:\Documents and Settings\Admon\Menú Inicio>


Si, eso funciona bien desde la cmd, pero desde un .bat a mí personalmente solo me funcionó como lo puse arriba.

Saludos
"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant


sirdarckcat

Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Admon>echo cd "Men? Inicio">>poc.bat

C:\Documents and Settings\Admon>echo echo %CD%>>poc.bat

C:\Documents and Settings\Admon>type poc.bat
cd "Men? Inicio"
echo C:\Documents and Settings\Admon

C:\Documents and Settings\Admon>poc

C:\Documents and Settings\Admon>cd "Men? Inicio"

C:\Documents and Settings\Admon\Menú Inicio>echo C:\Documents and Settings\Admon

C:\Documents and Settings\Admon

C:\Documents and Settings\Admon\Menú Inicio>


GroK

Bueno, pues he estado probando y me retracto, así también funciona :P En cualquier caso, creo q la duda inicial está resuelta y eso es lo que importa, es absurdo discutir por si va un '?' o un '£'.

Saludos
"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant


Stacker

Cierto, es absurdo discutir por eso. Pero una aclaración no vendria mal:

?, es un comodín que puede sustituir cualquier caracter.
£, es la equivalencia para ú.

Una solución es crear nuestros bat (al menos cuando contengan acentos) con edit.

Si necesitamos todas las equivalencias porque lo que no podemos es usar edit (alguien lo ha probado desde una shell con netcat  ;D), basta con abrir edit y crear un archivo con caracteres, todas las vocales acentuadas mayúsculas y minúsculas y las eñes.

Saludos.

H1@

lo mejor para crear script para mi gusto es hacerlo desde la consola:

c:>edit miBath.bat


se habre el editor de texto de CMD y no hay problema con loa acentos ni con códigos raros

o aveces utilizo:

c:>copy con >>malware.bat
@echo off
....
....
y va escribiendo el código directamente, cuando terminas pulsas Control+Z y el fichero quedada guardado

;)
#include <iostream>

using namespace std;

void cerebroDeBush()
  {
    char cerebro[3];
    cout << "¿Cuantas neuronas tiene Bush?\n";
    cin.get(cerebro,2);
    cout<<"Numero de neuronas: "<<cerebro<<endl;
   }

int main()
     {
       cerebroDeBush();
        return 0;
     }