none
Quitar comillas en cmd RRS feed

  • Pregunta

  • 

    Buenas tardes, tengo un problema al que no consigo darle solucion
    Tengo un bucle for de 9 repeticiones con el redirecciono un comando a un archivo .txt que mas tarde pasare a .bat de forma manual, para redireccionar el comando con echo a un fichero necesito poner comillas, pero una vez estan al archivo txt quiero pasarlo a bat y para que se ejecute correctamente necesito eliminarlas de aguna forma a el archivo txt redireccionado porque sino cuando lo paso a .bat al tener comillas no me lo reconoce, ¿Conocen alguna forma?Gracias.

    Codigo:

    Codigo

    for /L %%x in (1, 1, 9) DO (
    echo "icacls C:\Sevilla\Alumnes\Home\alu1617%%x /grant alu1617%%x:(OI)(CI)M">>prueba.txt
    )
    pause

    Lo redirecciona al archivo prueba.txt y sale:

    "icacls C:\Sevilla\Alumnes\Home\alu16171 /grant alu16171:(OI)(CI)M"
    "icacls C:\Sevilla\Alumnes\Home\alu16172 /grant alu16172:(OI)(CI)M"
    "icacls C:\Sevilla\Alumnes\Home\alu16173 /grant alu16173:(OI)(CI)M"
    "icacls C:\Sevilla\Alumnes\Home\alu16174 /grant alu16174:(OI)(CI)M"
    "icacls C:\Sevilla\Alumnes\Home\alu16175 /grant alu16175:(OI)(CI)M"
    "icacls C:\Sevilla\Alumnes\Home\alu16176 /grant alu16176:(OI)(CI)M"
    "icacls C:\Sevilla\Alumnes\Home\alu16177 /grant alu16177:(OI)(CI)M"
    "icacls C:\Sevilla\Alumnes\Home\alu16178 /grant alu16178:(OI)(CI)M"
    "icacls C:\Sevilla\Alumnes\Home\alu16179 /grant alu16179:(OI)(CI)M"


    Necesito sacar las comillas para poder pasar este archivo a .bat y que se pueda ejecutar correctamente. 

    Gracias de antemano

    lunes, 6 de febrero de 2017 18:14

Todas las respuestas

  • Las comillas solo se necesitan para delimitar parámetros que lleven o puedan llevar espacios dentro como rutas, nombres de fichero, usuarios, grupos, identificadores...

    echo icacls "C:\Sevilla\Alumnes\Home\alu1617%%x" /grant alu1617%%x:(OI)(CI)M>>prueba.txt

    En este caso, como la ruta C:\Sevilla\Alumnes\Home no contiene espacios y las sustituciones de alu1617%%x tampoco los generan, se puede prescindir de las comillas.

    echo icacls C:\Sevilla\Alumnes\Home\alu1617%%x /grant alu1617%%x:(OI)(CI)M>>prueba.txt

    Sin embargo, si por ejemplo Home se llamase Carpeta principal, entonces sí habría que encerrar "C:\Sevilla\Alumnes\Carpeta principal\alu1617%%x" entre comillas.

    viernes, 10 de febrero de 2017 19:59
  • Ya te dijo Ramon Sola que en ese caso no son necesarias las comillas.

    Si lo prefieres puedes intentar quitarlas con el comando set dentro de un for /f que recorra el archivo línea a línea ("tokens=*") y quitar las comillas con  (set línea=!línea:"=!) con eso quitas las comillas y a continuación guardas la línea modificada con  echo línea >> prueba_1.txt.

    Debes de colocar al principio del archivo la línea  setlocal enabledelayedexpansion y al final endlocal, y la variable línea tomada del for en vez de %línea% !línea! para que se expanda dentro del for, consulta la ayuda de for y set.

    jueves, 23 de febrero de 2017 20:22