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 - ---saster---

#1
Scripting / Re: cojer fecha
13 Abril 2010, 15:46 PM
eso es con for y date/t

Código (dos) [Seleccionar]
@echo off
:menu
set /p "file= archivo a renombrar>>>"
if not defined file (goto menu)
if not exist %file% (goto menu)
for %%a in ("date/t") do (call:date "%%~a" "%file%")
:date
set date=%~t1
set date=%date:~10,0%
set date=%date:/=-%
ren "%~2" "%date%.%~x2"
goto:eof
#2
Scripting / Re: Batch que haga un ping
9 Abril 2010, 12:12 PM
lo puedes hacer mas sencillo

ping google.es > nul 2>&1 && (goto var1) || (goto var2)

sin necesidad de la variable
#3
Scripting / Re: Ayuda con los comandos batch
8 Abril 2010, 15:51 PM
for %%a in (c: d: e: f: g:)do if exist %%a\ echo la unidad %%a existe

para hacer eso es mejor el wmic

yo lo hice hace poco con el fsutil

Código (dos) [Seleccionar]
@ECHO OFF
::obteniendo unidades disponibles con fsutil
::el comando fsutil requiere privilegios de administrador
::by ---saster---
title Unidades
set "list="
for /f "tokens=1*" %%a in ('fsutil fsinfo drives') do (
    set "vol=%%b"
    call set "list=%%list%% %%vol%%"
)
for %%A in (%list%) do fsutil fsinfo drivetype %%A

echo.&pause>nul&goto:eof


saludos
#4
Scripting / Re: Ayuda con los comandos batch
8 Abril 2010, 09:51 AM
mmm, para ser tu primer bat vas bien, sigue asi, y no dejes de leer manuales

usa mode para la pantalla completa, o start /max

puedes insertar muchos simbolos solo los tienes que encontrar

para la contraseña puedes hacer algo asi

@echo off
set/p "var=password:"
if ["%var%"]==["12345"] (
[code]&exit
) else (echo paswword incorrecta)


el comando call lo que hace es llamar una subrutina con unos parametros

@echo off
call:a "abc"
:b
::esto se vería segundo
echo 123
pause&exit
:a
::esto se vería primero
echo %~1
goto:eof


saludos[/code]
#5
esta claro que no por poner un bat en una linea es mejor, pero si habiendo dos bat que hagan lo mismo cuanto mas compacto sea es mejor

#6
para sacar la fecha de un archivo puedes utilizar %~t1 y es el primer token

te dejo un script parecido en el que lo que hace es sacar la fecha de creacion del propio bat

Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
for /f "" %%! in ("%~t0") do (
set "var=%%!"
set var=!var:/=-!
echo La fecha del archivo es: !var!
)
pause>nul
exit


lo que quieres hacer tu es parecido
#7
el ping sería mas sencillo pero no es exacto


lo que el quiere se puede hacer perfectamente en una linea con un ping y no tener que liarte en extraccion de caracteres y bucles (el ejemplo que puse)

@for %%a in (programa1,programa2,programa3,programa4) do (start "" "%%a"&ping localhost -n 15 >nul 2>&1)

con esto haces ping 15 veces que duran casi 15 seg, pero no son exactos... unas veces son 13, 15, 14, 14,5...
#8
Scripting / Re: Sencillo comando msdos, ayuda
25 Marzo 2010, 21:44 PM
el bat se ejecuta desde la shell con el archivo de parametro


if "%~1"=="" echo [sintaxis] 1 = archivo && goto:eof


con esto lo que hacemos es mostrar un mensaje explicando que hay que meter un parametro (si no se ha escrito nada) para que funcinone y luego se salga (goto:eof)

if exist "%~1" (call:a "%~1") else (echo file doesn't exist

si existe el archivo llamamos a la etiqueta con el parametro del archivo, si no que muestr un msg de que no existe el archvio

echo %~dpnx1

mostramos la ruta y el nombre del archivo que es la de destino en las propiedades

shift
goto:eof


el shift realmente no hace falta (es un poco mania mia) y con el goto:eof cerramos el call, que en este caso tampoco haría falta

pause>nul & exit/b %errorlevel%


hacemos una pausa y nos salimos



espero que te haya quedado mas claro ;)


#9
Scripting / Re: Sencillo comando msdos, ayuda
25 Marzo 2010, 15:55 PM
creo que eso es la ruta, lo puedes hallar viendo la ruta del archivo
Código (dos) [Seleccionar]
@echo off
if "%~1"=="" echo [sintaxis] 1 = archivo && goto:eof
if exist "%~1" (call:a "%~1") else (echo file doesn't exist)
pause>nul & exit/b %errorlevel%
:a
echo %~dpnx1
shift
goto:eof


sino type + find
#10
bueno el ping no es exacto pero es lo mas sencillo de utilizar, dije lo del time porque a lo mejor quería 15 seg exactos y no aproximadamente

puede ser algo asi el bucle

Código (dos) [Seleccionar]
@echo off
:menu
(set var,b,seg,seg2=)
cls
echo Principio:
set /p seg=
if not defined seg (goto menu)
if %seg% LEQ 0 (goto menu)
echo Final:
set /p seg2=
if not defined seg2 (goto menu)
if %seg2% LEQ %seg% (goto menu)
cls
:a
set var=%time:~6,2%
set b=%var%
:b
set var=%time:~6,2%
if %var%==%b% (goto b) else (
set /a "seg+=1"
echo %seg%
if %seg%==%seg2% (pause>nul&goto menu) else (goto a)
)


se puede mejorar, pero funciona   ¬¬