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