Como posso usar espaços na linha de comando do Windows?
cmd /C C:\Program Files (x86)\WinRar\Rar.exe a D:\Hello 2\File.rar D:\Hello 2\*.*
Respostas:
As aspas simples não servirão nesse caso. Você deve adicionar aspas em cada caminho e também colocar todo o comando entre aspas:
cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""
cmd /C
CEEMEA & LATAM.doc
. O que devo fazer? "C:\Program Files\WinRAR\rar" a -agmmddyy -x*CEEMEA & LATAM.doc ".rar"
Acabei de descobrir que, para um caso em que o caminho envolve o uso de caracteres de espaço em branco, por exemplo, quando preciso acessar o aplicativo, xyz
cujo local é:
C:\Program Files\ab cd\xyz.exe
Para executá-lo no prompt do cmd do Windows, você precisa usar
C:\"Program Files"\"ab cd"\xyz.exe
ou
"C:\Program Files\ab cd\xyz.exe"
Se as aspas duplas não resolverem o problema, tente, por exemplo
dir /X ~1 c:\
para obter uma lista de arquivos alternativos ou nomes de diretório. Saída de exemplo:
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)
Agora use o arquivo curto de 8 caracteres ou o nome da pasta na 5ª coluna, por exemplo, PROGRA ~ 1 ou DEFAUL ~ 1.XML, em seus comandos. Por exemplo:
set JAVA_HOME=c:\PROGRA~1\Java\jdk1.6.0_45
Coloque os caminhos que contêm espaços entre aspas duplas.
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
Rar.exe
realmente é a sintaxe do argumento . Você pode estar usando incorretamente. Talvez tente "D:\Hello 2\"
ou em "D:\Hello 2"
vez de "D:\Hello 2\*.*"
?
CEEMEA & LATAM.doc
. O que deveria ser? "C:\Program Files\WinRAR\rar" a -x*CEEMEA & LATAM.doc ".rar"
Tente fornecer nomes de caminhos complexos entre aspas (e inclua extensões de arquivo no final para arquivos).
Para arquivos:
call "C:\example file.exe"
Para Diretório:
cd "C:\Users\User Name\New Folder"
O CMD interpreta o texto com aspas duplas ("xyz") como uma string e o texto entre aspas simples ('xyz') como um comando. Por exemplo:
FOR %% A em ('dir / b / s * .txt') do ('comando')
FOR %% A em ('dir / b / s * .txt') do (echo "%% A")
E uma coisa boa, cmd não é * sensível a maiúsculas e minúsculas como o bash. Portanto, "Novo fiLE.txt" e "novo arquivo.TXT" são semelhantes a ele.
* Nota: As variáveis %% A no caso acima diferenciam maiúsculas de minúsculas (%% A não é 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"
isso funcionou para mim em um arquivo em lote
Basta adicionar aspas
Exemplo: "C: \ Usuários \ Nome do usuário"
Espero que tenha sido resolvido!
Você deve tentar usar aspas.
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
Spaces in the Commend Prompt (em uma linha de código de comando VBA Shell)
Eu tive um problema muito semelhante que acabou sendo um espaço no prompt de comando ao automatizar via VBA para obter o conteúdo da janela de comando em um arquivo de texto. Este Tópico foi um dos muitos que peguei ao longo do caminho e que não me trouxe a solução.
Portanto, isso pode ajudar outras pessoas com um problema semelhante: Como a sintaxe com aspas é sempre difícil de acertar, acho que mostrar alguns exemplos específicos é sempre útil. O problema adicional que você obtém ao usar o prompt de comando no VBA por meio do Shell é que a linha de código geralmente não apresenta erros quando algo dá errado: na verdade, um piscar da janela preta de recomendação leva a pensar que algo foi feito.
Por exemplo ... digamos que eu tenho uma pasta, com um arquivo de texto como em
C: \ Alans Folder \ test1.txt ( https://imgur.com/FELSdB6 )
O espaço lá no nome da pasta dá o problema.
Algo assim funcionaria, supondo que a pasta, AlansFolder, exista
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > C:\AlansFolder\test1.txt"""
End Sub
Isso não vai funcionar. (Não haverá erro).
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > C:\Alans Folder\test1.txt"""
End Sub
Incluir pares de citações no caminho fará com que funcione
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > ""C:\Alans Folder\test1.txt"""""
End Sub
(Aliás, se o arquivo texto não existir, ele será feito).
Com o benefício da percepção tardia, podemos ver que minha solução se relaciona aproximadamente com algumas já fornecidas.
Convertendo essa linha de código em um comando fornecido manualmente, teríamos
ipconfig /all > "C:\Alans Folder\test1.txt"
Isso parece funcionar
Isso também funciona
ipconfig /all > C:\AlansFolder\test1.txt
Isso não
ipconfig /all > C:\Alans Folder\test1.txt
Esta forma final também funciona e se relaciona com a solução de sacra…. ” Você deve adicionar aspas em cada caminho e também colocar todo o comando entre aspas “… ..
cmd.exe /c "ipconfig /all > "C:\Alans Folder\test1.txt""
Pode resolver este problema por cd comando , este comando entende espaços sem aspas duplas e você pode chamar qualquer programa desta forma por exemplo:
C: \ Windows \ system32> cd c: \ Arquivos de programas \ MongoDB \ Server \ 3.2 \ bin
c: \ Arquivos de programas \ MongoDB \ Server \ 3.2 \ bin> prompt de comando mongo agora chame mongo.exe