如何在命令提示符中使用空格?


189

如何在Windows命令行中使用空格?

cmd /C C:\Program Files (x86)\WinRar\Rar.exe a D:\Hello 2\File.rar D:\Hello 2\*.*

Answers:


258

在这种情况下,单引号不会起作用。您必须在每个路径周围添加引号,并将整个命令括在引号中:

cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""

4
是的,每个路径都应该用引号引起来。同样,整个命令必须再次用另一对引号引起来。现在可以了!谢谢!
起来

@sakra也不适合我。“” C:\ Program Files文件\ WinRAR的\的WinRAR.exe “一个”C:\ VERI塔巴尼yedekler \ Dedicated_Pokemon_Pets_DB_Backup_2014_7_10_7_2.rar“ -ri1 -mt2 -m5 ”C:\ VERI塔巴尼yedekler \ Dedicated_Pokemon_Pets_DB_Backup_2014_7_10_7_2.bak“”
MonsterMMORPG

3
@MonsterMMORPG在行首添加cmd /C
sakra 2014年

@sakra我想排除名称带有空格的文件CEEMEA & LATAM.doc。我该怎么办?"C:\Program Files\WinRAR\rar" a -agmmddyy -x*CEEMEA & LATAM.doc ".rar"
伊本·阿希克

为我工作,但没有外部引号:“ C:\ Program Files(x86)\ WinRar \ Rar.exe” a“ D:\ Hello 2 \ File.rar”“ D:\ Hello 2 \”
user1620090

78

我刚刚发现,在路径涉及使用空格字符的情况下,例如,当我需要访问应用程序时xyz,该位置为:

C:\Program Files\ab cd\xyz.exe

要从Windows cmd提示符运行此文件,您需要使用

C:\"Program Files"\"ab cd"\xyz.exe

要么

"C:\Program Files\ab cd\xyz.exe"

22

如果双引号不能解决问题,请尝试例如

dir /X ~1 c:\

获取备用文件或目录名称的列表。输出示例:

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)

现在,在命令的第5列中使用简短的8个字符的文件或文件夹名称,例如PROGRA〜1或DEFAUL〜1.XML。例如:

set JAVA_HOME=c:\PROGRA~1\Java\jdk1.6.0_45 

这是简单的方法。不涉及双双引号。
戴夫·安德森

您是否知道short 8.3是NTFS选项并且可以禁用?不要依赖它
Zan Lynx

10

用双引号将包含空格的路径括起来。

cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"

那么问题就在于参数的语法Rar.exe实际上是什么。您可能错误地使用了它。也许尝试"D:\Hello 2\"还是"D:\Hello 2"代替"D:\Hello 2\*.*"
JAB

cmd / C“ C:\ Program Files(x86)\ WinRar \ Rar.exe” A D:\ Hello \ File.rar D:\ Hello *。*(它没有空格,可以使用)但是如何处理空格?
faressoft 2011年

@JAB,如果您需要排除文件名带有空格的文件CEEMEA & LATAM.doc。应该是什么 "C:\Program Files\WinRAR\rar" a -x*CEEMEA & LATAM.doc ".rar"
伊本·阿什克

10

尝试在双引号中提供复杂的路径名(并在文件末尾添加文件扩展名。)

对于文件:

call "C:\example file.exe"

对于目录:

cd "C:\Users\User Name\New Folder"

CMD将带双引号(“ xyz”)的文本解释为一个字符串,将带单引号('xyz')的文本解释为命令。例如:

FOR %% A在('dir / b / s * .txt')中执行('command')

FOR %% A in('dir / b / s * .txt')do(echo“ %% A”)

一件好事,cmd不像bash一样区分大小写。因此,“ New fiLE.txt”和“ new file.TXT”是相似的。

*注意:以上情况下的%% A变量区分大小写(%% A不等于%% a)。


文件名中的下划线是否有效?像'FILE_NAME' VS '文件名'
SqueakyBeak

7

我更喜欢将命令包含在()其中,batch这使它更易于阅读:

cmd /C ("C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*")

3
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"

这在批处理文件中对我有用




0

推荐提示中的空格(在VBA Shell命令行中)

我有一个非常类似的问题,当通过VBA自动将命令窗口中的内容转换成文本文件时,最终在命令提示符中出现了空格。这个线程是我遇到的很多方法之一,但并没有为我提供解决方案。

因此,这可能会对其他有类似问题的人有所帮助:由于带引号的语法总是很难正确理解,我认为显示一些特定的示例总是有用的。您通过Shell事情在VBA中使用命令提示符时遇到的另一个问题是,当出现问题时,代码行通常不会出错:实际上,黑色推荐窗口的闪烁会误导您认为已完成某件事。

例如...说我有一个文件夹,其中有一个文本文件,例如

C:\ Alans文件夹\ test1.txt( https://imgur.com/FELSdB6

文件夹名称中的空格会出现问题。

假设Folder AlansFolder存在,则类似的事情会起作用

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > C:\AlansFolder\test1.txt"""
End Sub

这行不通。(不会出错)。

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > C:\Alans Folder\test1.txt"""
End Sub

在路径周围包括引号对将使其起作用

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > ""C:\Alans Folder\test1.txt"""""
End Sub

(顺便说一下,如果文本文件不存在,那么它将被创建)。

借助事后观察,我们可以看到我的解决方案确实与已经给出的解决方案紧密相关。

将代码行转换为手动给定的命令

ipconfig /all > "C:\Alans Folder\test1.txt"

这似乎有效

这也有效

ipconfig /all > C:\AlansFolder\test1.txt

这不是

ipconfig /all > C:\Alans Folder\test1.txt

这种最终形式也可以使用,并与sacra的解决方案紧密联系……” 您必须在每个路径周围添加引号,并将整个命令括在引号 “…..”中。

cmd.exe /c "ipconfig /all > "C:\Alans Folder\test1.txt""

-3

它可以通过cd命令解决此问题,该命令可以理解没有双引号的空格,并且您可以以这种方式调用任何程序,例如:

C:\ Windows \ system32> cd c:\ Program Files \ MongoDB \ Server \ 3.2 \ bin

c:\ Program Files \ MongoDB \ Server \ 3.2 \ bin> mongo现在命令提示符调用mongo.exe

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.