2011-01-25 10 views
8

Tengo el archivo por lotes que estoy heredando y no puedo ponerme a trabajar en un entorno de Windows 7 de 64 bits. El archivo por lotes realiza una llamada a un script java y pasa dos variables en él. El antiguo se veía así:Ruta de archivos de programa de Windows 7 de 32 bits en un archivo de proceso por lotes Problema

C:\Progra~1\salesf~1.com\ApexDa~2.0\bin\process.bat  C:\Progra~1\*PATH*  *VARIABLE* 

Esto se ejecutó onm 32bit XP que tiene solo los archivos del programa. He intentado de todas las maneras en que puedo pensar para cambiar el ser del camino a Program fiels x86. He intentado con SET PATH, SET ExecPath,% ProgrmaFiles (x86), pero todos devuelven no pueden encontrar la ruta especificada. Estoy seguro de que la respuesta es fácil, y sé que hay una manera mucho más rápida de hacerlo, y se cambiará, pero por el momento, necesito que esto funcione. Cualquier ayuda, muy apreciada.

+0

¿Está seguro de que los nombres de las rutas dos (/ short) están disponibles en Windows 64bit? – Christian

+0

@Christian, se implementan como enlaces duros en el controlador del sistema de archivos. Si bien se puede desactivar (y debería serlo en algunos casos), todavía está habilitado de forma predeterminada. – Joey

Respuesta

27

Si escribe

dir /x c:\ 

entonces esto muestra el listado del directorio en el formato 8.3. Program Files se expande a PROGRA~1 y Program Files (x86) se expande a PROGRA~2. Así que creo que tendrá que cambiar la secuencia de comandos para usar PROGRA~2

EDITAR: Estoy de acuerdo con Mark en que esto no es ideal, depende de cuánto pueda cambiar de las secuencias de comandos heredadas. En una máquina Win7, debería poder usar %ProgramFiles% y %ProgramFiles(x86)% (tenga en cuenta el '%' posterior).

+0

Muchas gracias, eso fue – KCavon

+1

es posible que desee hacer código más genérico y calcular este valor. p.ej. algo en la línea de para% x in ("% ProgramFiles (x86)%") echo echo% ~ fsx – John

+1

Eso es peligroso. Los ~ 1 y ~ 2 no se asignan necesariamente a 'Archivos de programa' o' Archivos de programa (x86) '. Puede funcionar en el 99% de las máquinas, pero la abreviatura de tilde solo significa" la primera carpeta que comienza con "Progra", y no hay un significado bien definido para "primero". –

1

export JAVA_HOME =/cygdrive/c/Archiv ~ 1/java/jdk1.7.0_40/

Esto funcionó para mí.

+0

Eso solo funcionará en un entorno de Cygwin, no en un script de proceso por lotes –

+0

.. para Batch Scripting, use SET A = B: \ X \ y \ Z – Li3ro

Cuestiones relacionadas