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

#9191
Scripting / Re: Ayuda con mi batch
23 Marzo 2013, 15:31 PM
Cita de: erikcatala en 23 Marzo 2013, 15:25 PM\Stuff\ADB.exe -parametros
ya me funciona no se si tendrá algo que ver
Sí, tiene que verlo todo, el problema era que el nombre de la ruta relativa lo estabas escribiendo mal, el slash (la barra vertical del principio) no hay que escribirla.

Pero en tu primer comentario dijiste que lo estabas usando de esta manera:
stuff\adb.exe

Lo cual es exáctamente lo mismo que acceder a la carpeta de esta forma que te mostré:
.\stuff\adb.exe


Pero ahora acabas de comentar que lo hacias así:
\stuff\adb.exe
Y eso era incorrecto.


Bueno, ya lo solucionaste,
Un saludo!
#9192
Scripting / Re: Ayuda con mi batch
23 Marzo 2013, 15:17 PM
Pero vamos a ver... si es algo muy fácil...

¿Tu el Script lo estás ejecutando DESDE ESTA ESTRUCTURA de directorio?:

Carpeta del BAT\Script.bat

Y dentro de "Carpeta del BAT" debes tener esta estructura de carpetas:

Carpeta del BAT\Carpeta Stuff\
Carpeta del BAT\Carpeta Stuff\adb.exe


Y entonces en el Script.bat escribes esta instrucción:
.\Stuff\ADB.exe -parametros
Y ejecutas el archivo.


Si sigues sin poder hacerlo, puedes colocar diréctamente el archivo ADB.exe en la carpeta "...\Windows\System32" e iniciarlo sin tener que escribir la ruta absoluta, símplemente escribiendo el nombre de la aplicación en tu script:

Código (dos) [Seleccionar]
@Echo OFF
ADB.exe -parametros
Pause


Saludos
#9193
Scripting / Re: Ayuda con mi batch
23 Marzo 2013, 15:05 PM
Con el comando Start se consigue exáctamente el mismo resultado que sin usarlo, no es algo significativo ni necesario en esta ocasión.

Cita de: erikcatala en 23 Marzo 2013, 14:41 PMSeria un archivo para poder utilizarlo en diferentes ordenadores serviría también?
Siempre que la carpeta "stuff" esté en el directorio raíz del script, y uses el script de la forma indicada, sí, servirá.

Si no has mostrado el código entero te aconsejo que lo muestres TODO porque no hay más maneras para iniciar un executable desde la CMD, la manera en la que lo estás haciendo es la correcta:
".\carpeta stuff\programa.exe" -parámetros

El problema puede ser debido a que la aplicación adb.exe o tu modificas el directorio actual del script, prueba esto a ver que resultados obtienes:

Código (dos) [Seleccionar]
@Echo OFF
Echo [+] Directorio actual: %CD%

.\stuff\adb.exe -parámetro

Echo [+] Directorio actual: %CD%
Pause


El directório actual debería seguir siendo el mismo para poder volver a ejecutar la aplicación por segunda vez.

Saludos
#9194
¿Alguien me puede explicar que estoy haciendo mal?

He usado los breakpoints y parece que todo está en orden, pero siempre obtengo un archivo de 0 Bytes.

PD: No hay errores/excepciones, nada extraño y me aseguro de cerrar el flujo para que los datos se escriban, pero parece que no se escriben.

Código (vbnet) [Seleccionar]
Imports System.IO

Public Class Form1

   Dim input_filepath As String = "C:\Test.txt"
   Dim output_filepath As String = "C:\Test_New.txt"
   Dim input As New FileStream(input_filepath, FileMode.Open, FileAccess.ReadWrite)
   Dim output As New FileStream(output_filepath, FileMode.Create, FileAccess.ReadWrite)

   Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       CopyStream(input, output)
       ' For Testing:
       'If New IO.FileInfo(output_filepath).Length = 0 Then IO.File.Delete(output_filepath) : Application.Exit() Else Process.Start("Notepad", output_filepath)
   End Sub

   Public Sub CopyStream(ByVal inputStream As Stream, ByVal outputStream As Stream)

       Dim buffer = New Byte(1025) {}
       Dim bytesRead As Integer = 0

       While (bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0
           outputStream.Write(buffer, 0, bytesRead)
       End While

       inputStream.Flush() : outputStream.Flush()
       inputStream.Close() : outputStream.Close()

   End Sub

End Class







Este es la conversión del código de arriba que una persona me ha proporcionado convertido a C#, este código funciona perféctamente a diferencia del de arriba, no entiendo porque, y es lo que estoy tratando de averiguar:

Código (csharp) [Seleccionar]

using System;
using System.IO;

namespace ConsoleApplication1
{
   class Program
   {
       static void Main(string[] args)
       {
           CopyMyFiles();
           Console.WriteLine("DONE!");
           Console.ReadLine();
       }

       private static void CopyMyFiles()
       {
           string input_filepath = "Test.txt";
           string output_filepath = "Test_New.txt";

           var input = new System.IO.FileStream(input_filepath, FileMode.Open, FileAccess.ReadWrite);
           var output = new System.IO.FileStream(output_filepath, FileMode.Create, FileAccess.ReadWrite);

           CopyStream(input, output);
       }

       public static void CopyStream(Stream inputStream, Stream outputStream)
       {
           byte[] buffer = new byte[1025];
           int bytesRead = 0;

           while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0)
           {
               outputStream.Write(buffer, 0, bytesRead);
           }

           outputStream.Flush();
           inputStream.Close();
           outputStream.Close();
       }
   }
}
#9195
Scripting / Re: Ayuda con mi batch
23 Marzo 2013, 14:10 PM
Dices que la carpeta se llama "staff" pero en el código escribes "stuff"

Así debes tener el directorio para que funcinoe dicho código:

...\Carpeta\Archivo.bat
...\Carpeta\Stuff
...\Carpeta\Stuff\adb.exe

Saludos
#9196
.NET (C#, VB.NET, ASP) / Re: TimeSpan o Timer?
22 Marzo 2013, 22:55 PM
Si Keyen gracias pero aún así lo que necesito saber es si las 3 maneras son 100% exactas/eficientes (siempre que se haya medido bien), o puede haber retrasos/diferencias de algún tipo como a mi me lo parece con TimeSpan.

un saludo
#9197
El error está en que estás utilizando un parámetro innecesario (/P) en el comando SET, pero para simplificar el código puedes usar la variable diréctamente:

Código (dos) [Seleccionar]
@echo off
echo Importando Base de Datos...
osql -E -S "%COMPUTERNAME%" \SqlExpress -i "instnwnd.sql"
Pause&Exit


Saludos
#9198
Hola

En una aplicación quiero calcular y mostrar el tiempo transcurrido y el tiempo restante, uso TimeSpan para calcular las dos cosas, pero creo que me está dando varios errores graves...  Me parece que las mediciones con TimeSpan a la larga tienen como...retrasos extraños.

Me gustaría saber que me aconsejais vosotros, los expertos, para hacer este tipo de mediciones, si el método Substract de TimeSpan o un simple Timer y sus Ticks (Lo segundo no lo he probado todavía para medir el tiempo transcurrido, por eso pregunto).

He leido que con un StopWatch también se puede, pero no he sabido utilizarlo para lo que necesito.

Un saludo!
#9199
Cita de: Hyman68 en 22 Marzo 2013, 14:07 PM
gracias a ambos, pero cómo debo hacerlo? debo instalar primero Virtualbox y luego Box Dos? qué versión de ambos debería instalar?

Primero el virtualizador de sistemas operativos, y luego el emulador de DOS dentro del sistema operativo que instales en el virtualizador.

CitarVirtualBox 4.2.10 for Windows hosts  x86/amd64
https://www.virtualbox.org/wiki/Downloads

CitarDOSBox Windows    0.74    Win32 installer
http://www.dosbox.com/download.php?main=1

Y de Windows puedes instalar el Windows XP de 32 Bit (no nos interesa que el SO virtual gaste más recursos) o incluso si lo prefieres puedes instalar el Windows 3.1 / 95 / 98 etc... xD.

Saludos
#9200
La tecnología avanza y hay cosas que sencíllamente no se pueden hacer, como compatibilizar una cinta VHS con un Reproductor de DVD's...

Segúramente el executable de ese juego es de 16 Bits, y por eso podías correrlo en tus otros Windows de 32 Bits, pero los SO de 64 Bits (Windows XP/Vista/7/8 x64) no soportan procesos de 16 Bits.

Para poder jugar, debes instalar una máquina virtual en tu SO, en la máquina virtual instalas Windows DE 32 BIT, y allí podrás jugar a tus juegos de MS-DOS (Si es necesario puedes instalar DosBox o WPDos en el Windows Virtual para correrlos).

https://www.virtualbox.org/wiki/Downloads
Ediciones oficiales de Windows 7 con SP1 integrado (Descargas directas aquí)  

Saludos