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

#7531
¿A que lineas duplicadas te refieres?.

El comando REN / RENAME sirve para renombrar un archivo, no para eliminarlo.
El comando ECHO sirve para imprimir un eco en la salida de la CMD, no para eliminar un archivo.

Debes usar el comando DEL para eliminar un archivo.

Si intentas eliminar un script que se está procesando sin dejar que se procesen todas las instrucciones de ese script ...no se procesarán las demás instrucciones porque no existirá el archivo que las contenga.

Creo que lo que intentas hacer sería esto...:

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

(

If Exist "%~1" (Echo Call :mover "%%~1")
If Exist "%~2" (Echo Call :mover "%%~2")
If Exist "%~3" (Echo Call :mover "%%~3")
If Exist "%~4" (Echo Call :mover "%%~4")
If Exist "%~5" (Echo Call :mover "%%~5")
Echo Del /Q "%%~f0"

) > "%TEMP%\0_ejecutar.bat"

Pause&Exit


Saludos
#7532
Cita de: elCantaroRoto en 27 Diciembre 2013, 12:56 PMOk, ya está editado.

Lo cierto es que sigue igual, las imágenes con la información del error no aparecen, y el código está sin sus etiquetas de código,
no se como esperas conseguir ayuda en un foro ...de esa manera.

Saludos!
#7533
Desde el aprecio te digo que tienes un problema con el concepto de "Ética", realizar una GUI para facilitar el uso de una aplicación CLI y compartirla sin ánimo de lucro ...no tiene nada de malo, eso sí, estoy seguro que al autor de la app no le gustaría nada que no le hayas dado créditos en tu app (para variar).

Sobre el código que has realizado, como te llevo diciendo desde hace días la utilización de un script Bat como intermediario para ejecutar un proceso (o para sacar el output, me da igual) es complétamente absurdo, esto es .NET, no Batch.

Cita de: Advanced CLOC
Código (vbnet,1,3,7) [Seleccionar]

Dim OutputFile As String = System.IO.Path.GetTempPath & "File.txt"

Dim pInfo As ProcessStartInfo

   Private Sub Analizar(ByVal Directory As String)

       pInfo = New ProcessStartInfo("cloc.bat", """" & Application.StartupPath & """ """ & Directory & """ """ & OutputFile & """")
       Proceso.EnableRaisingEvents = True
       pInfo.WindowStyle = ProcessWindowStyle.Hidden
       Proceso.StartInfo = pInfo
       Proceso.Start()

   End Sub

Si quieres mejorar la aplicación, por ahí es por donde debes empezar, por ejemplo:

Código (vbnet,1,3,8,9) [Seleccionar]

Private ReadOnly OutputFile As String = IO.Path.GetTempFileName

Private pInfo As ProcessStartInfo = New ProcessStartInfo

   Private Sub Analizar(ByVal Directory As String)

       With pInfo
           .FileName = IO.Path.Combine(Application.StartupPath, "cloc-1.60.exe")
           .Arguments = String.Format("{0} --out={1}", Directory, Me.OutputFile)
           .CreateNoWindow = True
           .UseShellExecute = False
           '.RedirectStandardOutput = True
           '.RedirectStandardError = True
       End With

       With Proceso
           .EnableRaisingEvents = True
           .StartInfo = pInfo
       End With

       Proceso.Start()

   End Sub


Aparte de eso, en el Script .bat hay un fallo, debes expandir las variables especiales (%~1/%~2/%~3) para quitarle las comillas, y encerrarlas entre comillas. Pero mejor olvidémonos de ese Script.

Saludos
#7534
Lo sorprendente es que después de haberte avisado de las normas del foro, sigas sin modificar tu post inicial.

Podrías dejar de quejarte por todo, y empezar a respetar, entonces nosotros te respetaremos (y ayudaremos).

Saludos
#7535
Prueba así, lo hice al vuelo, no lo he testeado:

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

Echo+ | MORE

set /p "Computer=Escriba el numero de IP:"
set /p "User=Nombre del Usuario:"

FOR /F "Usebackq Delims=" %%# IN (".\claves.txt") DO (

REM Echo La clave que utilizaremos es: %%~#

(
NET Use \\%Computer% /user:"%Computer%\%User%" "%%~#"
) && (Call :Ok "%%~#") || (Call :Fail "%%~#")

)
Goto :END

:Ok
Echo: Clave Buena: "%~1"
Pause & Exit /B 0

:Fail
Echo: Clave fallida: "%~1"
GOTO:EOF

:END
Echo: Ninguna clave buena.
Pause & Exit /B 1


Saludos
#7536
Cita de: Ikillnukes en 26 Diciembre 2013, 16:44 PMComo puedo solventar este error?

No se le puede denominar Error, por pura lógica si utilizas un método para leer subdirectorios en "X" directorio, no esperes que la directorio Root se vaya a procesar... puesto que no es un subdirectorio.

¿Solución?, primero procesas la carpeta de origen, y luego procesas las subcarpetas con el método que has aprendido.

O bien subes un nivel de directorio para que el directorio que deseas procesar, se procese como un subdirectorio más.

Saludos!
#7537
Si me permites la pregunta... ¿Porque no haces la aplicación en .NET?.

No entiendo porque motivo pretendes ocultar el proceso explorer.exe (si es que he entendido bien y eso es lo que pretendes hacer, que tampoco lo sé) pero en ese caso puedes usar VBNET/C#, pero Batch no, como tampoco puedes valerte de Batch para ejecutar una instancia de la CMD en modo oculto, aunque si puedes escribir un archivo VBS que ejecute el script bat/cmd en modo oculto o usar algún programa de terceros para convertir el script a executable (oculto), pero como ya te digo ...sabiendo manejar .NET no creo que debas recurrir ni a Batch ni a VBS para la tarea, yo sería lo último que haría xD, no cuesta nada escribir una mini-aplicación en VBNET que haga estas cosas, aún así ...aquí tienes el script para iniciar un script en la CMD en modo oculto:

Run_Hidden.vbs
Código (vb) [Seleccionar]
' Run Hidden Process
' By Elektro H@cker

Process   = """" & WScript.Arguments(0) & """"
Arguments = null

For X = 1 to WScript.Arguments.Count - 1
  Arguments = Arguments & " " & _
              """" & WScript.Arguments(X) & """"
Next

WScript.CreateObject("WScript.Shell").Run _
Process & " " & Arguments, 0, False

Wscript.Quit


EDITO: Y para ocultar un proceso (las ventanas del explorer) usando Batch, puedes utilizar la aplicación de terceros NirCMD y/o también CMDOW.

Saludos
#7538
Cita de: Ikillnukes en 26 Diciembre 2013, 15:37 PMNo se lo que ha pasado, que cloc-1.60.exe no me lo reconoce, y está en la misma carpeta... :/

Se debe a que en el código modifico la ruta del directorio de trabajo actual, ya lo he corregido en el código de arriba

Saludos
#7539
Has adaptado mal el ejemplo que tomaste de mi antiguo usuario "@pitoloko"

1.
Estas usando 3 FOR anidados y la función de los 3 es recorrer subdirectorios, sin permitir que el primer FOR termine de procesar todos los subdirectorios, óbviamente se van a procesar más veces de las deseadas.

2.
Citarset carpeta="C:\Users\Alvaro\Documents\Dropbox2\Dropbox\Game Unity3D\Assets\resources\src"
En Batch sólamente debes colocar las comillas dobles después del símbolo =, en casos especiales, pero este no es uno de esos casos.

3.
Citar::echo Explorando carpeta "%%a"
La mala costumbre técnica de usar un doble operador :: como reemplazamiento de linea de comentario (REM), no se debe usar dentro del bloque de un búcle, por precaución.

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

Set "WorkingDir=%CD%"
SET "Directory=%UserProfile%\Documents\Dropbox2\Dropbox\Game Unity3D\Assets\resources\src"
SET "OutputFile=%WorkingDir%\mi_juego.log"

PUSHD "%Directory%"
(
FOR /D /R %%@ in ("*") DO (

Echo: Carpeta: "%%~@" | MORE
Start /W "Count Lines Of Code" "%WorkingDir%\cloc-1.60.exe" "%%~@"

)

)>"%OutputFile%"
POPD & CLS

Echo: Proceso terminado, gracias por usar CLOC.

Pause & Exit /B 0


Saludos
#7540
No se tiene porque liar Simorg, creo que tanto tú, como yo, como cualquier otro mod, tenemos todo el derecho de opinar, debatir, o incluso quejarnos ...como personas adultas.

Espero que sepas que te agradezco las aclaraciones (como siempre he hecho), pero como ya dije no tengo nada más que decir al respecto (a menos que alguien pida mi opinión, yo me callo ya), solo que perdón de verdad por haber desviado el tema, pero debía responderte, además ten en cuenta que yo también en un principio sólamente intentaba aclarar para el resto de los usuarios del foro que leyesen el comentario de .:UND3R:., puesto que no era así la cosa.

Y por cierto, felices fiestas a ti y a todos los que lean esto!

EDITO:
PD: a el-brujo le hice saber en su momento lo que pienso al respecto, preferiría no importunarle para que no se sienta obligado a responder a este post (me da un poco de miedo cual pudiera ser su reacción porque ya debe estar harto de mi con este tema).

Saludos!