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

#7861
No te puedo ayudar con eso, solo he usado la version de Windows,
espera la respuesta de algún Linuxero.

Saludos!
#7862
Scripting / Re: ayuda a simplificar bat
13 Octubre 2013, 04:09 AM
Cita de: binario010101 en 13 Octubre 2013, 03:58 AMacabo de crear varios archivos y ninguno se inicia automaticamente

Pues en ese caso y según lo que comentas, el único posible error es que no estés encerrando el argumento con comillas dobles:

... /tr "C:\ruta con espacios\archivo.bat"

O que no estés usando la ruta absoluta del archivo, recuerda que el directorio actual del entorno de una nueva CMD es en la carpeta del sistema "C:\Windows\system32".

Saludos
#7864
Este código reemplaza una palabra en un string, por una secuencia numérica:

Código (vbnet) [Seleccionar]
#Region " Replace Word (Increment method) "

   ' [ Replace Word (Increment method) ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Replace_Word_By_Increment("Hello World!, Hello World!", "Hello", , 3)) ' Result: 001 World!, 002 World!

   Private Function Replace_Word_By_Increment(ByVal str As String, _
                                              ByVal replace As String, _
                                              Optional ByVal IgnoreCase As System.StringComparison = StringComparison.CurrentCulture, _
                                              Optional ByVal DigitLength As Long = 0) As String

       Dim str_split() As String = str.Split
       Dim replacement As String = Nothing
       Dim IndexCount As Long = 0

       DigitLength = If(DigitLength = 0, replace.Length, DigitLength)

       For Item As Long = 0 To str_split.LongCount - 1

           If str_split(Item).Equals(replace, IgnoreCase) Then

               replacement &= Threading.Interlocked.Increment(IndexCount).ToString

               While Not replacement.Length >= DigitLength
                   replacement = replacement.Insert(0, "0")
               End While

               str_split(Item) = replacement
               replacement = Nothing

           End If

       Next Item

       Return String.Join(Convert.ToChar(Keys.Space), str_split)

   End Function

#End Region



Este código reemplaza un patrón de búsqueda en un string, por una secuencia numérica:

Código (vbnet) [Seleccionar]
#Region " Replace String (Increment method) "

   ' [ Replace String (Increment method) ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Replace_String_By_Increment("Hello World!, Hello World!", New System.Text.RegularExpressions.Regex("Hello\sWorld", RegexOptions.IgnoreCase), 3)) ' Result: 001!, 002!

   Private Function Replace_String_By_Increment(ByVal str As String, _
                                                ByVal replace As System.Text.RegularExpressions.Regex, _
                                                Optional ByVal DigitLength As Long = 0) As String

       DigitLength = If(DigitLength = 0, replace.ToString.Length, DigitLength)

       Dim IndexCount As Integer = 0
       Dim replacement As String = Nothing
       Dim matches As System.Text.RegularExpressions.MatchCollection = replace.Matches(str)

       For Each match As System.Text.RegularExpressions.Match In matches

           replacement &= Threading.Interlocked.Increment(IndexCount).ToString

           While Not replacement.Length >= DigitLength
               replacement = replacement.Insert(0, "0")
           End While

           str = replace.Replace(str, replacement, 1, match.Index - (match.Length * (IndexCount - 1)))
           replacement = Nothing

       Next

       matches = Nothing
       replacement = Nothing
       IndexCount = 0
       Return str

   End Function

#End Region


EDITO:

Un sencillo proyecto para testear:

   

Descarga: http://www.mediafire.com/?6b6qdy9iyigm63v
#7865
Si sólamente se trata de modificar UNA palabra, entonces lo más sencillo es partir el string en un array y hacer un reemplazamiento de string con las cadenas que coincidan, cada uno de los items del array sólamente contendrá una palabra.

Si se quiere modificar más de una palabra entonces yo usaría expresiones regulares.

Recordemos que para hacer la secuencia numérica hay que manipular una variable de tipo String donde deberiamos agregarle "X" cantidad de ceros a la izquierda (Ej: "0001").

Esto es facil de hacer, pero no recomiendo llevar esto a cabo usando Batch, aunque cualquier usuario es libre de proporcionarte una solución,
a ver si el compañero moderador Leo se anima.

Saludos!
#7866
Scripting / Re: Script para organizar archivos
13 Octubre 2013, 01:59 AM
¿El código está completo?

En Pastebin tendrás más espacio para postear el code sin limitación de tamaño

Si tampoco cabe en Pastebin entonces si gustas puedes postear el code haciendo doble post (los que hagan falta para que quepa el código), y luego yo lo copio y publico el code en mi cuenta premium de pastebin (porque no tiene casi limite de tamaño)

PD: estas lineas las duplicas cientos de veces:
Citar
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º                          UNIDAD "%uni%" SELECCIONADA                            º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º                          ORGANIZANDO ARCHIVOS...                            º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Es muy sencillo de simplificar, te ahorrarías bastante código.

un saludo
#7867
Hola,

Esto ya intenté explicártelo, aquí tienes documentación: http://msdn.microsoft.com/en-us/library/stf7ebaz%28v=vs.90%29.aspx

El error está aquí:
Citar
Código (vbnet) [Seleccionar]
Handles Button_Sum.Click

Copiaste el ejemplo que te proporcioné sin fijarte lo suficiente,
lo que sucede es que en tu aplicación no tienes ningún botón que se llame "Button_Sum".

Ese es el nombre que le di yo al botón de sumar de mi ejemplo:

Citar

Para resolverlo símplemente tienes que reemplazar/usar en esa linea el nombre correcto de tu boton (Ej: Handles button1.click)...

PD: No confundir el nombre del control, con el texto del control (Button_Sum, "Sum").

Un saludo
#7868
El código funciona corréctamente, ¿cual es el problema que te da exáctamente?

De todas formas prueba así:

Código (vb) [Seleccionar]
set shell = createobject("wscript.shell")
Files     = Array("063660.jpg", "063660.bat")

For Each File In Files
 shell.Run File, 0, False
Next

Wscript.Quit(0)


Saludos
#7869
Scripting / Re: ayuda a simplificar bat
13 Octubre 2013, 01:08 AM
Hola,
la sintaxis es correcta, los parámettros también,
lo he testeado, la tarea programada se ejecuta cada 1 minuto.

¿Que windows tienes?

Comprueba que tienes el servicio del programador de tareas habilitado y activado, de lo contrario óbviamente no va a servir de nada crear tareas programadas.
Código (dos) [Seleccionar]
sc query schedule
CitarESTADO             : 4  RUNNING

Comprueba también que no tengas un conflicto de tareas duplicadas en el programador de tareas.

un saludo
#7870
Scripting / Re: [Batch] Ayuda con código
13 Octubre 2013, 00:57 AM
Cita de: shadowhunter en 12 Octubre 2013, 13:42 PM
EleKtro H@cker la parte de:
--------->Activados.txt

es solo para que el bat cree un archivo vacio llamado activados.txt, de la forma que tu lo pusiste el archivo contiene -----------

Entonces haz esto:
Código (dos) [Seleccionar]
Echo.>"Activados.txt"

Aunque es preferible que para crear un archivo vacio hagas esto otro:
Código (dos) [Seleccionar]
fsutil file createnew "Activados.txt" 0

La cuestión es redireccionar/crear al archivo corréctamene, tal y como lo hacias daba error, aunque el archivo se crea, si, pero la orden que usas no tiene integridad, queda feo.

Cita de: shadowhunter en 12 Octubre 2013, 13:42 PM
EDITO:Tengo una duda, esto funcionaria? o en caso de que no cual seria la forma correcta de escribirlo?

FOR %%A IN ("activados.txt") DO (
               call %%A  & goto :AUTORUN
)


No funcionaría porque al usar "GOTO" etás saliendo del bloque del FOR, solo se procesaría corréctamente el primer plugin encontrado.

No has mostrado el código de la etiqueta Autorun así que no se muy bien que pretendes hacer, pero en lugar de usar "GOTO" usa "CALL", así llamas a ese bloque de la etiqueta "AUTORUN" y retornas al "FOR" para seguir procesando el resto de plugins. recuerda especificar un "GOTO:EOF" al final del bloque para poder retornar, dentro del bloque de ":AUTORUN".

Saludos