Respuestas de consola

Iniciado por bITEBUG, 5 Junio 2011, 00:47 AM

0 Miembros y 1 Visitante están viendo este tema.

bITEBUG

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

bITEBUG

solucionado!:

Para redireccionar la ruta tiene que existir!

SuperDraco

#2
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
No he vuelto, solo estoy de paso.

bITEBUG

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

SuperDraco

#4
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
No he vuelto, solo estoy de paso.

bITEBUG


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!

SuperDraco

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"

No he vuelto, solo estoy de paso.

bITEBUG

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.