Veamos que tal estais del sistema.

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jmtella
    Administrator
    • Nov
    • 20580

    Veamos que tal estais del sistema.

    En Windows es perfectamente posible crear una carpeta que tenga el símbolo "&"

    Por ejemplo, imaginemos (es un caso real) que una aplicación nos crea una carpeta con el símbolo &. Por ejemplo: "c:\carpeta utilidades & varios" y además que por suerte o por desgracia nos lo meta en el path.

    Igualmente sabéis (o deberíais) que para añadir una carpeta al path en algunos scripts, lo normal es hacer:

    set path=C:\nueva_carpeta;%path%

    de esta manera se añade al comienzo del path. o bien si queremos al final:

    set path=%path%;c:\nueva_carpeta

    Peroooo... si el path original tuviese un & esto no funciona correcto. Lo trunca precisamente en el &... ya que el & es un separador de comandos y el comando dado al asignar ahora debería tener un símbolo ^ antes del &.

    Pero hay solución... usad la imaginación ¿como?... :-)
  • NostromoADF
    Senior Member
    • Dec
    • 596

    #2
    Se me ocurre un script vbs escribiendo directamente en el registro de windows. Tendría que mirar los comandos necesarios ya que nunca he necesitado un script, pero se que es muy potente el lenguaje.

    Comentario

    • jmtella
      Administrator
      • Nov
      • 20580

      #3
      Originalmente publicado por NostromoADF Ver Mensaje
      Se me ocurre un script vbs escribiendo directamente en el registro de windows. Tendría que mirar los comandos necesarios ya que nunca he necesitado un script, pero se que es muy potente el lenguaje.
      Muchooo mas fácil que eso...

      Comentario

      • noSign
        Super Moderator
        • Dec
        • 4380

        #4
        setx path "%path%;C:\nueva_carpeta;%path%"
        Con comillas y setx.

        Comentario

        • jmtella
          Administrator
          • Nov
          • 20580

          #5
          Originalmente publicado por noSign Ver Mensaje
          setx path "%path%;C:\nueva_carpeta;%path%"
          Con comillas y setx.
          Casiiii.... pero:

          NOTE:
          1) SETX writes variables to the master environment in the registry.
          2) On a local system, variables created or modified by this tool
          will be available in future command windows but not in the
          current CMD.exe command window.

          Y yo no quiero que lo escriba en el registro...lo quiero solo para esa sesión de consola... o sea, no quiero el 1), pero quiero el 2).

          Comentario

          • NostromoADF
            Senior Member
            • Dec
            • 596

            #6
            set path=%path%;c:\copia ^& pega\
            Funciona, ya que al crear un bat en esa carpeta lo ejecuta correctamente. Aunque al ejecutar echo %path% no le guste y por eso ayer no lo dije.
            C:\Users\Javier>echo %path%
            C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\sys tem32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDO WS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Samsung
            \AllShare Framework DMS\1.3.21\;C:\Program Files\Samsung\AllShare Framework DMS\1.3.21\64bit\;c:\copia
            "pega" no se reconoce como un comando interno o externo,
            programa o archivo por lotes ejecutable.

            Ejecutamos el archivo cosa.bat que está en la carpeta copia & pega cuyo contenido es dir *.* y funciona.

            C:\>cosa

            C:\>dir *.*
            El volumen de la unidad C no tiene etiqueta.
            El número de serie del volumen es: C8E4-D64C

            Directorio de C:\

            14/09/2013 09:21 111 .dir
            23/04/2015 16:15 <DIR> Autodesk
            03/05/2015 09:44 <DIR> copia & pega
            03/05/2015 09:41 <DIR> pega
            22/08/2013 17:22 <DIR> PerfLogs
            23/04/2015 15:45 <DIR> Program Files
            23/04/2015 15:45 <DIR> Program Files (x86)
            17/01/2014 07:01 <DIR> sources
            17/01/2014 06:55 <DIR> totalcmd
            17/01/2014 07:01 <DIR> Universal_Extractor_1.7.8.93
            17/01/2014 07:42 <DIR> Upload
            14/09/2013 09:50 <DIR> Users
            18/02/2015 20:44 <DIR> Utilidades
            23/04/2015 16:32 <DIR> Windows
            1 archivos 111 bytes
            13 dirs 29.951.467.520 bytes libres

            Comentario

            • jmtella
              Administrator
              • Nov
              • 20580

              #7
              Si... eso si. Pero es lo que he dicho,. no vale el ^`ya que si el & está ya en el path no funciona... Es decir, presuponiendo que el & ya esté en alguna de las carpeta del path, como añadimos otra normalita nuestra a dicho path?...

              Comentario

              • jmtella
                Administrator
                • Nov
                • 20580

                #8
                RESPUESTA:

                Código:
                SET NUEVA=C:\nueva_carpeta_a_añadir
                for /f "tokens=2 delims==" %%i in ('path') do set path=%NUEVA%;%%i
                (si lo haceis desde la consola en vez de un bat, cambiar el %% por un solo %

                Comentario


                • NostromoADF
                  NostromoADF comentó
                  Editar un comentario
                  Ahh.... cabaramos. Tengo muy oxidada la programación. Tus artículos de los comandos los tengo guardados
              Trabajando...
              X