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 - Eleкtro

#8031
Scripting / Re: Personalizar Batch
19 Septiembre 2013, 01:13 AM
Hombre pues claro... si copias el código sin más es obvio que no te va a funcionar, debes ajustarlo a tus necesidades.

Sin examinar detalládamente el code, para empezar el code que te puse no almacena el resultado en ninguna variable, imprime el output diréctamente.
Creo que no debería ser necesario una explicación sobre como deberías modificarlo, pero bueno:
Set "Words=!Words!!X!!Word:~1! "
(Dentro de la subrutina)

CitarSet ToWordCase=%Alphabet%
Ahí no le estás asignando ningún valor, porque no hay ninguna variable que se llame "alphabet" fuera de la subrutina :ToWordCase.

Citarset cadena=%ano%%guion%%mes%%guion%%dia% %ToWordCase%%nombre%
towordcase está vacia porque alphabet tambien está vacia.

Cita de: Pédrin-2 en 19 Septiembre 2013, 00:42 AMSetlocal EnableDelayedExpansion
Esa orden deberías ponerla al principio del script junto al "@Echo OFF".

saludos
#8032
Programación General / Re: ¿Como puedo crear un SO?
19 Septiembre 2013, 00:58 AM
Cita de: Alexperto en 18 Septiembre 2013, 21:38 PM
Pues lo que sea, pero hay que comprar algun derecho para crear un sistema operativo con eso?  

La pregunta era muy obvia, pero es que existe una cosa que se llama "buscar", y otra cosa que se llama "FAQ" (Frequently Asked Questions), si combinas esas dos proezas obtienes resultados como este:

http://en.opensuse.org/openSUSE:SUSE_Studio_Faq#How_much_does_it_cost.3F

Por cierto, en la misma página encontrarás un enlace a la "licencia" de SuseStudio, pero eso ya dejo que lo "busques" tú, de todas formas cuando instalas el software también te sale los términos de licencia...

PD: De verdad no se como la gente pregunta cosas de este tipo cuando esa información siempre está en la propia web del producto o en su software... en este caso y en todos los demás.

Saludos
#8033
Scripting / Re: eliminar una linea en un batch
19 Septiembre 2013, 00:33 AM
Primero tienes que averiguar el número de la linea (usando el comando FIND), y luego podrías usar este script para reemplazar la línea entera:

By Elektro H@cker[APORTE] Rutina TEXTMAN para manipular archivos de texto

saludos
#8034
Scripting / Re: [BATCH] Duda
18 Septiembre 2013, 18:40 PM
A mi me funcionan bien los tres, quizás tuviste un problema de conexión con el foro justo en ese momento, intenta de nuevo...

de todas formas no creo que cueste mucho abrir el primer enlace e ir bajando el post hasta los otros 2 puntos que he citado -.-

Saludos!
#8035
· FileSize Converter

Convierte tamaños de unidades de almacenamiento

Código (vbnet) [Seleccionar]
#Region " FileSize Converter "

    ' [ FileSize Converter Function ]
    '
    ' // By Elektro H@cker
    '
    ' Examples :
    '
        ' MsgBox(String.Format("92928374 bytes = {0} Bytes", FileSize_Converter(92928374, Units.bytes, Units.bytes).ToString("n0"))) ' Result: 92.928.374,00 Bytes
        ' MsgBox(String.Format("92928374 bytes = {0} KB", FileSize_Converter(92928374, Units.bytes, Units.kilobyte).ToString("n2"))) ' Result: 90.750,37 KB
        ' MsgBox(String.Format("92928374 bytes = {0} MB", FileSize_Converter(92928374, Units.bytes, Units.megabyte).ToString("n2"))) ' Result: 88,62 MB
        ' MsgBox(String.Format("50 GB = {0} Bytes", FileSize_Converter(50, Units.gigabyte, Units.bytes).ToString("n2"))) ' Result: 53.687.091.200,00 Bytes
        ' MsgBox(String.Format("50 GB = {0} KB", FileSize_Converter(50, Units.gigabyte, Units.kilobyte).ToString("n2"))) ' Result: 52.428.800,00 KB
        ' MsgBox(String.Format("50 GB = {0} MB", FileSize_Converter(50, Units.gigabyte, Units.megabyte).ToString("n2"))) ' Result: 51,200,00 MB

    Enum Units As Long
        bytes = 1L
        kilobyte = 1024L
        megabyte = 1048576L
        gigabyte = 1073741824L
        terabyte = 1099511627776L
        petabyte = 1125899906842624L
    End Enum

    Private Function FileSize_Converter(ByVal Size As Long, _
                                  ByVal FromUnit As Units, _
                                  ByVal ToUnit As Units) As Double

        Dim bytes As Double = Convert.ToDouble(Size * FromUnit)
        Dim result As Double = 0

        If ToUnit < FromUnit Then

            Select Case ToUnit
                Case Units.bytes : result = bytes
                Case Units.kilobyte : result = bytes / Units.kilobyte
                Case Units.megabyte : result = bytes / Units.megabyte
                Case Units.gigabyte : result = bytes / Units.gigabyte
                Case Units.terabyte : result = bytes / Units.terabyte
                Case Units.petabyte : result = bytes / Units.petabyte
                Case Else : Return -1
            End Select

        ElseIf ToUnit > FromUnit Then

            Select Case ToUnit
                Case Units.bytes : result = bytes
                Case Units.kilobyte : result = bytes * Units.kilobyte / Units.kilobyte ^ 2
                Case Units.megabyte : result = bytes * Units.megabyte / Units.megabyte ^ 2
                Case Units.gigabyte : result = bytes * Units.gigabyte / Units.gigabyte ^ 2
                Case Units.terabyte : result = bytes * Units.terabyte / Units.terabyte ^ 2
                Case Units.petabyte : result = bytes * Units.petabyte / Units.petabyte ^ 2
                Case Else : Return -1
            End Select

        ElseIf ToUnit = FromUnit Then

            result = Size

        End If

        Return result

    End Function

#End Region
#8036
Scripting / Re: Personalizar Batch
18 Septiembre 2013, 12:39 PM
Código (dos) [Seleccionar]
@Echo OFF
Setlocal EnableDelayedExpansion

Call :ToWordCase "hello world"

Echo+
Pause&Exit

:ToWordCase
Set "Alphabet=ABCDEFGHIJKLMNOPQRSTUVWXYZ"

For %%# in (%~1) do (
Set "Word=%%#"
Set "Char=!Word:~0,1!"
If "!Char!" EQU "a" (Set "X=%Alphabet:~0,1%")
If "!Char!" EQU "b" (Set "X=%Alphabet:~1,1%")
If "!Char!" EQU "c" (Set "X=%Alphabet:~2,1%")
If "!Char!" EQU "d" (Set "X=%Alphabet:~3,1%")
If "!Char!" EQU "e" (Set "X=%Alphabet:~4,1%")
If "!Char!" EQU "f" (Set "X=%Alphabet:~5,1%")
If "!Char!" EQU "g" (Set "X=%Alphabet:~6,1%")
If "!Char!" EQU "h" (Set "X=%Alphabet:~7,1%")
If "!Char!" EQU "i" (Set "X=%Alphabet:~8,1%")
If "!Char!" EQU "j" (Set "X=%Alphabet:~9,1%")
If "!Char!" EQU "k" (Set "X=%Alphabet:~10,1%")
If "!Char!" EQU "l" (Set "X=%Alphabet:~11,1%")
If "!Char!" EQU "m" (Set "X=%Alphabet:~12,1%")
If "!Char!" EQU "n" (Set "X=%Alphabet:~13,1%")
If "!Char!" EQU "o" (Set "X=%Alphabet:~14,1%")
If "!Char!" EQU "p" (Set "X=%Alphabet:~15,1%")
If "!Char!" EQU "q" (Set "X=%Alphabet:~16,1%")
If "!Char!" EQU "r" (Set "X=%Alphabet:~17,1%")
If "!Char!" EQU "s" (Set "X=%Alphabet:~18,1%")
If "!Char!" EQU "t" (Set "X=%Alphabet:~19,1%")
If "!Char!" EQU "u" (Set "X=%Alphabet:~20,1%")
If "!Char!" EQU "v" (Set "X=%Alphabet:~21,1%")
If "!Char!" EQU "w" (Set "X=%Alphabet:~22,1%")
If "!Char!" EQU "x" (Set "X=%Alphabet:~23,1%")
If "!Char!" EQU "y" (Set "X=%Alphabet:~24,1%")
If "!Char!" EQU "z" (Set "X=%Alphabet:~25,1%")
< Nul Call Set /P "=!X!!Word:~1! "
)

GOTO:EOF


Así lo hice en Batch,
saludos!
#8037
Scripting / Re: Cambiar separador de campo
18 Septiembre 2013, 12:04 PM
Te aconsejo que utilices un lenguaje con soporte para reemplazar mediante expresiones regulares (es decir, cualquier otro lenguaje menos Batch).

(\s{1})[^.]

Puedes utilizar el subgrupo 1 de ese RegEx.

Saludos!
#8038
Scripting / Re: Personalizar Batch
17 Septiembre 2013, 23:52 PM
Cita de: Pédrin-2 en 17 Septiembre 2013, 22:32 PMA veces, cuando pongo el nombre, por ejemplo Juan, me abre la carpeta de mis documentos, la cierro y ejecuto de nuevo, poniendo el mismo nombre y es a la segunda cuando funciona.

Si eso es así entonces puede que estés creando la carpeta después de llamar al explorer y no antes?

Lo de incrementar el sufijo del nombre de la carpeta, sólamente tienes que hacer un substring, es muy sencillo: http://ss64.com/nt/syntax-substring.html

hoy no tengo mas tiempo, si no se me adelanta algún compañero mañana te muestro lo de poner las letras en WordCase, que eso requiere un poco más de elaboración.

Saludos
#8039
Programación General / Re: Ayuda xcopy batch
17 Septiembre 2013, 23:11 PM
Es culpa mía, que hoy estoy un poco espeso, disculpa, Xcopy pide multiples confirmaciones...

Puedes usar el sistema de exclusiones del comando XCopy, aunque es una mierd@ de sistema hablando en claro y muy limitado:

Código (dos) [Seleccionar]
@Echo OFF

Set "Dir1=D:\Directorio1"
Set "Dir2=D:\Directorio2"

PUSHD "%Dir2%"
(For /R %%# in ("*") do (Echo %%~nx#))>>"%~dp0Exclude.txt"
POPD

XCOPY /E /-Y "%Dir1%\*" "%Dir2%\" /EXCLUDE:Exclude.txt

DEL /Q "Exclude.txt"
Pause&Exit







Otra alternativa es hacer esto, queda bastante feo, y limitado (a la cantidad de "N"), pero si no necesitas copiar muchos archivos entonces te funcionará:

Código (dos) [Seleccionar]
@Echo OFF

Echo NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN|(
XCOPY /E /-Y "D:\DIRECTORIO\1\*" "D:\DIRECTORIO\\2\"
)

Pause&Exit


Saludos
#8040
Programación General / Re: Ayuda xcopy batch
17 Septiembre 2013, 21:24 PM
Cita de: N@5h en 17 Septiembre 2013, 21:18 PM
nose donde ponerle el

Echo N|

Lo tienes que poner a la izquierda, tal y como te mostré en mi ejemplo,
piensa que la salida del comando (una "N") se lo quieres pasar al comando que hay después de la pipe "|", no al revés.

Código (dos) [Seleccionar]
Echo N|XCOPY /E /-Y "D:\Escritorio\1\*" "D:\Escritorio\2\"

PD: Usa las comillas dobles siempre sobretodo cuando trabajes con directorios, son muy importantes.

Saludos!