Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: cat26 en 3 Octubre 2018, 09:47 am



Título: Almacenar nombre de un archivo en una variable [BATCH]
Publicado por: cat26 en 3 Octubre 2018, 09:47 am
Hola a todos! Necesito ayuda con un batch.
Necesito que lea el nombre de un archivo y lo almacene en una variable para posteriormente tarabajar con ese nombre. hay alguna manera???
El archivo no importa el nombre *.txt lo que me importa es nadamas el nombre eh estado intentando con varios codigos que encontré y nada. Se los agradeceria
GRACIAS
Código
  1. @echo off
  2. FOR %%F IN (*.java) DO SET NOMBRE=%%F
  3. ECHO %NOMBRE%
Asi solo logro hacer que me muestre nombre y extension :/


Título: Re: Almacenar nombre de un archivo en una variable [BATCH]
Publicado por: OmarHack en 3 Octubre 2018, 10:09 am
Con %f pillas todo el path, usa %n en su lugar para sacar solo el nombre del archivo.
https://stackoverflow.com/questions/15567809/batch-extract-path-and-filename-from-a-variable#15568171



Título: Re: Almacenar nombre de un archivo en una variable [BATCH]
Publicado por: **Aincrad** en 3 Octubre 2018, 15:43 pm
Metodo 1.

Código
  1. @echo off & title Contador de Archivos & set a=0 & color a & :by **Aincrad**
  2.      echo/ & dir /b *.java | findstr /n ".java$" & echo/
  3.                                        (for %%x in (*.java) do set /a a+=1)
  4.      echo/ & echo/ & echo      Archivos txt encontrados %a% & echo/
  5. pause  
  6.  


Metodo 2.

Código
  1. @echo off  
  2. ::::::::::::::::::::::::
  3. :se crea el directorio.
  4. ::::::::::::::::::::::::
  5.      (if exist lista.dll del lista.dll          
  6.               dir /b *.java >> lista.dll
  7.                    cls     )                    
  8. ::::::::::::::::::::::::::::::::
  9. :se crea un backup
  10. ::::::::::::::::::::::::::::::::
  11.    (    echo/
  12.              echo/
  13.                  copy "lista.dll" "%temp%\lista.txt"
  14.              cls
  15.           echo/  )
  16. ::::::::::::::::::::::::::::::::::::::
  17. :se muestra el directorio en la cmd
  18. ::::::::::::::::::::::::::::::::::::::
  19.  (      color a
  20.           type "%temp%\lista.txt"    
  21.     echo/
  22.     echo ================================
  23.     echo =   candad de archivos  .java  =
  24.     echo ================================
  25.     echo/
  26.                 dir /b *.txt | find /c  ".txt"
  27.      del /f /q "%temp%\lista.txt"
  28.      ECHO CREATE BY **Aincrad**
  29. pause >nul)


Metodo 3

Código
  1. @echo off
  2. del %temp%\a.txt
  3. cls
  4. :Crearlista
  5.  
  6.  for %%x in (*.java) do (echo %%x >> %temp%\a.txt)
  7.      echo lista Creada.
  8. ping localhost -n 2 >nul
  9.  
  10. :leerlista
  11. cls
  12. color b
  13. type "%temp%\a.txt"
  14. pause>nul
  15. exit

SALUDOS


Título: Re: Almacenar nombre de un archivo en una variable [BATCH]
Publicado por: cat26 en 4 Octubre 2018, 05:33 am
gracias con su ayuda pude resolver lo que buscaba
Código
  1. FOR %%o IN (*.java) DO (
  2. SET nombresinextension=%%~no
  3. )