如何在Windows命令行中使用空格?
cmd /C C:\Program Files (x86)\WinRar\Rar.exe a D:\Hello 2\File.rar D:\Hello 2\*.*
答案 0 :(得分:216)
在这种情况下,单引号不起作用。您必须在每个路径周围添加引号,并将整个命令括在引号中:
cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""
答案 1 :(得分:64)
我刚才发现,对于路径涉及使用空格字符的情况,例如,当我需要访问应用xyz
时,该位置是:
C:\Program Files\ab cd\xyz.exe
要从Windows cmd提示符运行此命令,您需要使用
C:\"Program Files"\"ab cd"\xyz.exe
或
"C:\Program Files\ab cd\xyz.exe"
答案 2 :(得分:18)
如果双引号无法解决问题,请尝试例如。
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
答案 3 :(得分:9)
用包含双引号的空格包含空格。
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
答案 4 :(得分:8)
尝试在双引号中提供复杂的路径名(并在文件末尾包含文件扩展名。)
对于文件:
cd "C:\Users\User Name\New Folder"
目录:
public class CORSPreflightModule : IHttpModule
{
private const string OPTIONSMETHOD = "OPTIONS";
private const string ORIGINHEADER = "ORIGIN";
private const string ALLOWEDORIGIN = "https://yourspodomain.sharepoint.com";
void IHttpModule.Dispose()
{
}
void IHttpModule.Init(HttpApplication context)
{
context.PreSendRequestHeaders += (sender, e) =>
{
var response = context.Response;
if (context.Request.Headers[ORIGINHEADER] == ALLOWEDORIGIN)
{
response.Headers.Add("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS");
response.Headers.Add("Access-Control-Allow-Headers", "Content-Type");
}
if (context.Request.HttpMethod.ToUpperInvariant() == OPTIONSMETHOD && context.Request.Headers[ORIGINHEADER] == ALLOWEDORIGIN)
{
response.Headers.Clear();
response.Headers.Add("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS");
response.Headers.Add("Access-Control-Allow-Origin", "https://yourspodomain.sharepoint.com");
response.Headers.Add("Access-Control-Allow-Credentials", "true");
response.Headers.Add("Access-Control-Allow-Headers", "Content-Type");
response.Clear();
response.StatusCode = (int)HttpStatusCode.OK;
}
};
}
}
它也适用于所有类似的地址问题。 还有一件好事,cmd不像bash那样区分大小写。所以&#34;新的fiLE.txt&#34;和&#34;新文件.TXT&#34;和它一样。
答案 5 :(得分:7)
我更喜欢将命令括在()
中,该命令有效batch
,这使得它更容易阅读:
cmd /C ("C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*")
答案 6 :(得分:2)
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"
这对我来说是一个批处理文件
答案 7 :(得分:1)
你应该尝试使用引号。
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
答案 8 :(得分:0)
只需添加引号
示例:“ C:\ Users \ User Name”
希望它能解决!
答案 9 :(得分:0)
命令提示符中的空格(在VBA Shell命令行中)
我有一个非常相似的问题,当通过VBA自动将命令窗口中的内容转换为文本文件时,最终在命令提示符中出现了空格。这个线程是我遇到的很多方法之一,并没有完全解决我的问题。
所以这可能会对其他有类似问题的人有所帮助:由于带引号的语法总是很难正确理解,我认为显示一些特定的示例总是有用的。 通过Shell事情在VBA中使用命令提示符时遇到的另一个问题是,当出现问题时,代码行通常不会出错:实际上,黑色的推荐窗口闪烁会误以为事情已经完成。
例如……说我有一个文件夹,其中有一个文本文件,例如
C:\ Alans文件夹\ test1.txt(https://imgur.com/FELSdB6)
文件夹名称中的空格会引起问题。
假设文件夹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""
答案 10 :(得分:-3)
它可以通过 cd 命令解决这个问题,这个命令可以理解没有双引号的空格,你可以用这种方式调用任何程序,例如:
C:\ Windows \ system32&gt; cd c:\ Program Files \ MongoDB \ Server \ 3.2 \ bin
c:\ Program Files \ MongoDB \ Server \ 3.2 \ bin&gt; mongo 现在命令提示符调用mongo.exe