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

#1
Bueno, pues durante el día de hoy encontré la solución a mi problema, aunque es un poco más drástica que la que acaba de publicar FiReBlAdE2, pero a cambio funciona indistintamente en windows 2k/xp y en 9x  ;).

Lo primero (solo para windows 9x) debemos crear un archivo que simule a la tecla intro, para esto hacemos lo siguiente:

copy con "nombre de archivo"

y pulsamos intro 2 veces el intro y luebo Ctrl+z y otra vez al intro, de esta forma se nos crea un archivo que ocupa 2 bytes y que nos va a servir para simular la tecla intro. Imaginemos que este archivo se va a llamar "intro.txt", luego el codigo sería este:

echo off
cls
set %1
set dia=00
set mes=00
set año=00
if %OS% == Windows_NT goto winnt
goto win9x
:winnt
date /t > date.txt
goto dia
:win9x
date <intro.txt |find "actual" >date.txt
goto dia
:dia
find " 01/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=01
find " 02/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=02
find " 03/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=03
find " 04/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=04
find " 05/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=05
find " 06/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=06
find " 07/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=07
find " 08/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=08
find " 09/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=09
find " 10/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=10
find " 11/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=11
find " 12/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=12
find " 13/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=13
find " 14/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=14
find " 15/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=15
find " 16/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=16
find " 17/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=17
find " 18/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=18
find " 19/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=19
find " 20/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=20
find " 21/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=21
find " 22/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=22
find " 23/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=23
find " 24/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=24
find " 25/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=25
find " 26/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=26
find " 27/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=27
find " 28/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=28
find " 29/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=29
find " 30/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=30
find " 31/" <date.txt
if errorlevel 0 if not errorlevel 1 set dia=31
:mes
find "/01/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=01
find "/02/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=02
find "/03/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=03
find "/04/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=04
find "/05/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=05
find "/06/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=06
find "/07/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=07
find "/08/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=08
find "/09/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=09
find "/10/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=10
find "/11/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=11
find "/12/" <date.txt
if errorlevel 0 if not errorlevel 1 set mes=12
:año
find "2004" <date.txt
if errorlevel 0 if not errorlevel 1 set año=04
find "2005" <date.txt
if errorlevel 0 if not errorlevel 1 set año=05
find "2006" <date.txt
if errorlevel 0 if not errorlevel 1 set año=06
:carpeta
cls
md %1%dia%-%mes%-%año%
:end

Se podría depurar un poco más, pero para lo que yo quería sobra  ;D. La primera variable es para poder poner la ruta donde queremos que se cree la carpeta, por ejemplo imaginemos que el archivo .bat se llama fecha:

fecha c:\dias\

de esta forma se crearía una carpeta de nombre 00-00-00 en la carpeta c:\dias, con lo que a día de hoy se quedaría así:

c:\días\23-12-04\

Espero que le sirva a lguien.

Un saludo.
#2
Hola a todos. Soy nuevo por aquí y veo que hay un gran nivel, a ver si me puedo pasar más a menudo. Bueno, y a lo que iba, a ver si me podeis solucionar una duda. Me gustaría hacer un script batch que cree de forma automática un directorio que por nombre tenga la fecha del día en que ejecutamos el archivo .bat, pero no encuentro la forma de hacerlo, seguro que alguno se le ocurre algo. Muchas gracias.

Un saludo.