DOS命令行中的双引号

在DOS命令窗口下,运行C:\Program Files\WinRAR\WinRAR.exe,提示如下错误:

因为C:\Program Files\WinRAR\WinRAR.exe中含有空格,它被分成了两个部分:C:\Program和Files\WinRAR\WinRAR.exe。DOS命令窗口会把C:\Program当做C:\Program.exe或C:\Program.bat,而把Files\WinRAR\WinRAR.exe当做命令行参数传递给C:\Program.exe或C:\Program.bat。因为C:\Program.exe和C:\Program.bat都不存在,所以显示了上图所示的错误信息。

解决办法就是加上双引号,如下图所示:

这样,DOS命令窗口就知道要执行C:\Program Files\WinRAR\WinRAR.exe了。

还可以这样加双引号:

所以:DOS命令行中的双引号一般情况下都会被忽略掉,它的作用仅仅是防止空格被当做分隔符。

现在,如下图所示,想给程序vsyasm.exe传递一个参数,此参数就是一个双引号。结果就是vsyasm根本接收不到双引号这个参数。

此时,命令应该写成这样:

也就是说:DOS命令行中的\"会被解释为"

接下来,坑来了。如下图所示:调用vsyasm.exe编译d:\1.asm,输出目录被设置为c:

上述命令行预期的是被分成四部分:


vsyasm


-o


c:\


d:\1.asm

事实上却是被分成了三个部分:


vsyasm


-o


c:" d:\1.asm

都是\"惹的祸。解决办法是这样的,如下图所示:

上述命令行被分成预期的四部分:


vsyasm


-o


c:\


d:\1.asm

也就是说:双引号前的两个反斜杠会被替换为一个。上图双引号内的反斜杠后面紧跟着双引号,所以两个反斜杠被解释为一个反斜杠,同时右边的双引号说明字符串结束了。

再看看下图所示的命令行会被解释成什么?

双引号内部的反斜杠后面紧跟着双引号,所以前两个反斜杠被解释为一个反斜杠,\"被解释为字符串内部的双引号,因为字符串未结束,所以后面的 d:\1.asm也会和 c:\"连接起来,最终被解释为三部分:


vsyasm


-o


c:\" d:\1.asm

总之:DOS命令行中的\"就是一个大坑,需要慎之又慎。

时间: 2024-10-14 05:36:56

DOS命令行中的双引号的相关文章

dos命令行中不同磁盘的调转

windows下,dos中不同磁盘的跳转: 直接 盘符+回车: 如跳转到d盘: D:回车即可 : Microsoft Windows [版本 10.0.10586] (c) 2015 Microsoft Corporation.保留所有权利. C:\Users\Administrator>e: E:\>d: D:\>

学习dos命令行总结

dir:列出当前目录下的所有文件及文件夹. md 文件夹:创建文件夹 rd 文件夹:删除文件夹 echo 文件内容>文件名(扩展名):创建带文件内容的新文件 echo 文件内容>>文件名(扩展名):在原文件基础上,增加文件内容 cd:进入到指定的目录下 (.):表示当前目录 (..):表示上一级目录 cd..:退回到上一级目录下 cd\:退回到根目录下 del 文件名(扩展名):删除文件 del 文件夹:提示是否删除文件夹下的所有文件 del *:删除所有文件 del *.扩展名:删除指

关于dos命令行方式的一些解释

1. dos命令行的本质 dos命令,是dos操作系统地命令,是一种面向磁盘的操作命令,主要包括磁盘操作类命令,目录操作类命令,文件操作类命令和其他命令. 这里理解为,我们借助dos操作系统来下达一些我们需要的操作,最终实现我们的需求.和图像化操作方式相比,是另一种形式的人机交互方式. 2. dos命令行中的书写是不区分大小的.比如:d:\JAVA\cd BIN,进入的是d:\JAVA\bin. 3. 在学习dos的过程中,我是以cd命令来学习的.通过help cd,来检查cd的命令的使用. 以

dos命令行 指令

盘符: 例如想进入D盘 d: ../ 上一层目录 md 文件夹名 新建文件夹cd 文件夹名 进入到该目录cd.. 返回上一层目录cd\ 返回根目录 cd \windows 进入到当前盘Windows目录cd.>文件名 新建文件 rd 文件夹名 删除文件夹(只能删除空文件夹)copy 文件(夹)名1 文件(夹)名2 1复制到2中move 文件(夹)名1 文件(夹)名2 1剪切到2中del 文件名 删除文件del 文件夹名 删除文件夹内的所有文件ren 文件(夹)名1 文件(夹)名2 将名字1改成名

shell中的双引号,单引号,反引号

在shell中引号分为三种:单引号,双引号和反引号. 单引号 ‘ 由单引号括起来的字符都作为普通字符出现.特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释.单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号.(注意是所有,只是单引号本身不能够出现在其中).例如: $ string=’$PATH’ $ echo $string $PATH 可见$保持了其本身的含义,作为普通字符出现. 双引号 “ 双引号用于保持引号内所有字符的字面值(回

Linux操作系统基础学习中,双引号、单引号、反引号的区别及样例

1.双引号("") 由双引号括起来的字符,一般保留特殊字符的功能,如美元符号($).反引号(``).反斜线(\). 2.单引号('') 由单引号括起来的字符都被视为普通字符对待. 3.反引号(``)(在键盘的左上端) 由反引号括起来的字符串被当做shell命令执行,其标准输出结果取代整个反引号部分. 一般都会在命令中这三种引号都会组合起来使用,来组合成更多的命令. 且单引号.双引号都引用时,以命令行最外面的引号为准. 样例 单个应用案例 组合应用案例 单引号.双引号组合案例 原文地址:

dos命令行实践

本篇体验使用dos命令行窗口实现各种操作. □ 打开dos命令行窗口 →点击电脑左下角"开始"按钮→点击"运行"→输入"cmd",按回车,来到dos命令行窗口 C:\Users\Adminstrator>是默认的文件夹,能在C盘Users文件夹下的找到对应的Adminstrator文件夹. □ 基本操作 →在C盘下创建一个名为S的文件夹→输入如下命令● cd\,进入到根文件夹● cd s,进入到目标文件夹● cd ..,进入到上一级文件夹●

Python中input和raw_input在命令行中读入文件地址的区别

如果直接在命令行中利用input和raw_input读入一个文件来处理,并且想要采用直接将文件拖入命令行来处理的方式, input方法可以直接处理,而如果要采用raw_input的方法的话,读入文件地址会带有引号,还需要自己手动去掉引号才能处理文件. 在ipython中测试一下代码:(读入一个图片文件的地址字符串) a = input("input a:\n") print "the input method: ",a b = raw_input("inp

* 和 ?在 shell 命令行中与在正则表达式中的区别

Linux 正则表达式 你有没有想过,在 shell 命令行中的 *,?和正则表达式中的*,?是否一样? 自打好多年前接触 DOS,就知道了* 和?这两个通配符(Wildcard),象 dir *.* 这样的命令也不知道敲了多少遍. 后来,开始用 Windows 3.1 这样的图形界面操作系统,命令行就就得越来越少了. 再后来,开始学习正则表达式,又开始接触 * 和 ? 这样的东西.在正则中它们被称为元字符(Meta Character). 再再后来,开始使用 Linux,于是又开始使用命令行,