Respuestas:
Las comillas simples no funcionarán en ese caso. Debe agregar comillas alrededor de cada ruta y también encerrar todo el comando entre comillas:
cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""
cmd /C
CEEMEA & LATAM.doc
. ¿Qué tengo que hacer? "C:\Program Files\WinRAR\rar" a -agmmddyy -x*CEEMEA & LATAM.doc ".rar"
Me acabo de dar cuenta de que para un caso en el que la ruta implica el uso de espacios en blanco, por ejemplo, cuando necesito acceder a la aplicación, xyz
qué ubicación es:
C:\Program Files\ab cd\xyz.exe
Para ejecutar esto desde Windows cmd prompt, debe usar
C:\"Program Files"\"ab cd"\xyz.exe
o
"C:\Program Files\ab cd\xyz.exe"
Si las comillas dobles no resuelven el problema, intente, por ejemplo
dir /X ~1 c:\
para obtener una lista de archivos alternativos o nombres de directorio. Salida de ejemplo:
11/09/2014 12:54 AM 8,065 DEFAUL~1.XML Default Desktop Policy.xml
06/12/2014 03:49 PM <DIR> PROGRA~1 Program Files
10/12/2014 12:46 AM <DIR> PROGRA~2 Program Files (x86)
Ahora use el archivo corto de 8 caracteres o el nombre de la carpeta en la quinta columna, por ejemplo, PROGRA ~ 1 o DEFAUL ~ 1.XML, en sus comandos. Por ejemplo:
set JAVA_HOME=c:\PROGRA~1\Java\jdk1.6.0_45
Encierre las rutas que contienen espacios con comillas dobles.
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
Rar.exe
. Puede que lo estés usando mal. Tal vez intente "D:\Hello 2\"
o en "D:\Hello 2"
lugar de "D:\Hello 2\*.*"
?
CEEMEA & LATAM.doc
. ¿Que debería ser? "C:\Program Files\WinRAR\rar" a -x*CEEMEA & LATAM.doc ".rar"
Intente proporcionar nombres de ruta complejos entre comillas dobles (e incluya extensiones de archivo al final para los archivos).
Para archivos:
call "C:\example file.exe"
Para el directorio:
cd "C:\Users\User Name\New Folder"
CMD interpreta el texto con comillas dobles ("xyz") como una cadena y el texto dentro de comillas simples ('xyz') como un comando. Por ejemplo:
FOR %% A en ('dir / b / s * .txt') do ('comando')
FOR %% A en ('dir / b / s * .txt') do (echo "%% A")
Y una cosa buena, cmd no es * sensible a mayúsculas y minúsculas como bash. Por lo tanto, "New fiLE.txt" y "new file.TXT" son similares.
* Nota: Las variables %% A en el caso anterior distinguen entre mayúsculas y minúsculas (%% A no es igual a %% a).
set "CMD=C:\Program Files (x86)\PDFtk\bin\pdftk"
echo cmd /K ""%CMD%" %D% output trimmed.pdf"
start cmd /K ""%CMD%" %D% output trimmed.pdf"
esto funcionó para mí en un archivo por lotes
Solo agregue comillas
Ejemplo: "C: \ Usuarios \ Nombre de usuario"
¡Espero que se haya resuelto!
Deberías intentar usar comillas.
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
Espacios en el símbolo del sistema (en una línea de código de comando de VBA Shell)
Tuve un problema muy similar que terminó siendo un espacio en el símbolo del sistema al automatizar a través de VBA para obtener el contenido de la ventana de comandos en un archivo de texto. Este hilo fue uno de los muchos que atrapé en el camino que no me dio la solución.
Entonces, esto puede ayudar a otros con un problema similar: dado que la sintaxis con comillas siempre es difícil de corregir, creo que mostrar algunos ejemplos específicos siempre es útil. El problema adicional que obtienes al usar el símbolo del sistema en VBA a través de la cosa de Shell es que la línea de código a menudo no se equivoca cuando algo sale mal: de hecho, un parpadeo de la ventana de recomendación negra induce a error al pensar que se hizo algo.
Como ejemplo ... digamos que tengo una carpeta, con un archivo de texto como en
C: \ Carpeta Alans \ test1.txt ( https://imgur.com/FELSdB6 )
El espacio allí en el nombre de la carpeta da el problema.
Algo como esto funcionaría, suponiendo que la carpeta, AlansFolder, exista
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > C:\AlansFolder\test1.txt"""
End Sub
Esto no funcionara. (No fallará).
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > C:\Alans Folder\test1.txt"""
End Sub
Incluir pares de comillas alrededor del camino hará que funcione
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > ""C:\Alans Folder\test1.txt"""""
End Sub
(Por cierto, si el archivo de texto no existe, se creará).
Con el beneficio de la retrospectiva, podemos ver que mi solución se vincula aproximadamente con algunas ya dadas.
Convirtiendo esa línea de código a un comando dado manualmente tendríamos
ipconfig /all > "C:\Alans Folder\test1.txt"
Eso parece funcionar
Esto funciona también
ipconfig /all > C:\AlansFolder\test1.txt
Esto no
ipconfig /all > C:\Alans Folder\test1.txt
Esta forma final también funciona y se vincula con la solución de sacra ... ". Debe agregar comillas alrededor de cada ruta y también incluir todo el comando entre comillas “… ..
cmd.exe /c "ipconfig /all > "C:\Alans Folder\test1.txt""
Puede resolver este problema por cd comando , este comando comprende espacios sin comillas dobles y puede llamar a cualquier programa de esta manera, por ejemplo:
C: \ Windows \ system32> cd c: \ Archivos de programa \ MongoDB \ Server \ 3.2 \ bin
c: \ Archivos de programa \ MongoDB \ Server \ 3.2 \ bin> mongo ahora símbolo del sistema llame a mongo.exe