alguien podria decirme si estas respuestas son normales?:
(los asteriscos separan los casos)
*
C:\Documents and Settings\Arian>findstr "^23:" "Watchtower - 01 - Meltdown.mp3">>"y:\VMemSis\temp\rfc\Watchtower - 01 - Meltdown.lc"
C:\Documents and Settings\Arian>
*
C:\Documents and Settings\Arian>findstr "^23:" "Watchtower - 01 - Meltdown.mp3">>"%tmp%\temp\rfc\muestras\originales\Watchtower - 01 - Meltdown.lc"
El sistema no puede hallar la ruta especificada.
C:\Documents and Settings\Arian>
*
C:\Documents and Settings\Arian>dir | sort
El nombre del directorio no es válido.
C:\Documents and Settings\Arian>
*
solucionado!:
Para redireccionar la ruta tiene que existir!
No, no hace falta que exista, si usas un solo ">" se crea automáticamente el archivo
En tu caso que usas 2 ">>" para SEGUIR redireccionando a un supuesto archivo que debería existir, entonces si.
Mi solución: Usa un solo ">" en el primer comando de tu batch, y el resto dejalo con dos ">>". Así te evitas escribir un comando para crear el archivo de redireccionamiento...
saludosss
Gracias pitoloko pero lo acabo de verificar y en mi Xp demente es asi mismo.
puedo redireccionar sobreescritura (>) y modificacion (>>) a un archivo inexitente siempre y cuando exista una carpeta que lo contenga: la redireccion, sobreescritura o modficacion, crea (en mi caso) archivos pero no carpetas.
Me gustaria saber si podrias decirme algo de el otro error de redireccion, el de salida a entrada (|) llevo lidiando tanto tiempo con el y es tan frustrante y vuelve el scripting tan tedioso que he decidido abandonar el entorno de Xp (lo que supongo pondra contentos a muchos de ustedes y a decir verdad capaz que a mi tambien).
EDITO: Antes de nada, perdon por la confusion, creia que decias que debia existir el archivo para redireccionar, no la carpeta, entonces si, me acabo de dar cuenta ahora de como lo dijistexD.
Si no pones un código de algún batch que te de error con las pipes "|" no puedo intentar corregirte nada :xD (Un script, no eso que pusiste en el primer comentario xD)
en teoría un simple dir | sort funciona :/ , además el error parece ser que lo da el DIR. No se si en el XP da error al ejecutar un DIR desde una carpeta con espacios en el nombre, por tu primer comentario parece que si, en windows 7 no pasa :xD
De todas formas, prueba así:
dir "%cd%" | sort
Sobre el "|", es sencillo de usar, y en el ejemplo lo has usado bien. ¿Que más puedo decir? Como todos los caracteres de redireccionamiento, solo se deben usar con ese proposito, no se pueden usar para variables o crear nombres ya que hay que tener en cuenta que se reconocerian como un redireccionamiento, y se truncaría esa parte del código. Un dato que te puede interesar, dentro de un FOR habría que usarlo así, por ejemplo:
@echo off
For /f "tokens=*" %%a in ('dir "%cd%" ^| sort') do echo %%a
pause>nul
C:\Documents and Settings\Arian>For /f "tokens=*" %a in ('dir "%cd%"') do echo %a
"dir "C:\Documents and Settings\Arian"" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
Mi Xp es un queso suizo :p
Igual me conformo con:
dir "%cd%">imaginacion
For /f "tokens=*" %%a in (imaginacion) do echo %%a
Y es claro que es bastante sencillo hacer:
Dir %cd%|find "%date%"|sort| more| del
(Dir %cd%^|find "%date%"^|sort^| more^| del)
(((Dir %cd%^^^|find "%date%"^^^|sort^^^| more^^^| del)))
lo dificil es hacer:
Dir %cd%>imaginacion
for /f %%x in (imaginacion) echo %%x>"mucha imaginacion"
find "%date%" "mucha imaginacion">imaginacion
for /f %%x in (imaginacion) echo %%x>"mucha imaginacion"
sort "mucha imaginacion">imaginacion...
...........................................................| more| del
Ahora que lo leo me doy cuenta que es interminable! y agotador!
Ya lo revise y no es un problema de nombres largos:
C:\Documents and Settings\Arian>set|find "path"
El nombre del directorio no es válido.
Ohmmm! Cambio de entorno y listo!
C:\Documents and Settings\Arian>For /f "tokens=*" %a in ('dir "%cd%"') do echo %a
"dir "C:\Documents and Settings\Arian"" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.
WTF!
Si uso ese for me funciona, en cambio a ti no te reconoce el comando ¿DIR?.
me rindo, no entiendo porque te da esos fallos inexplicables xD, jaja
C:\Users\Administrador\Desktop>@echo off
For /f "tokens=*" %a in ('dir "%cd%"') do echo "%a"
"El volumen de la unidad C es PiToLoKo"
"El número de serie del volumen es: BC7F-EE2D"
"Directorio de C:\Users\Administrador\Desktop"
"11/06/2011 15:33 <DIR> ."
"11/06/2011 15:33 <DIR> .."
"11/06/2011 15:33 0 @echo"
"10/06/2011 23:47 <DIR> PiToLoKo Fast Times Vol. 10"
"10/06/2011 23:40 <DIR> PiToLoKo Fast Times Vol. 5"
"10/06/2011 14:59 <DIR> PiToLoKo Fast Times Vol. 8"
"11/06/2011 00:04 <DIR> PiToLoKo Fast Times Vol. 9"
"11/06/2011 12:27 47.874.048 Slayers 1x23 - [AnimeHD] [DVDRip] [spanish]
.264"
"2 archivos 47.874.048 bytes"
"7 dirs 364.590.755.840 bytes libres"
Es un queso suizo, ya te dije, yo desisti hace tiempo.
Igual, lo de el for estoy seguro que viene de un error de la tabla de caracteres al pasarle las comillas, si lo hago en un editor hexadecimal lo mas seguro es que funcione.
(ojo que es el for el que no sabe interpretar el comando y no la shell.)
lo del "dir|sort" no se.
Bueno estoy algo cansado para seguir hablando de programacion por hoy, gracias por tus respuestas pitoloko, mañana seguiremos compartiendo conocimientos, y capaz hasta podriamos intercambiar algunos batch mas adelante.