在Windows 10 CMD中运行链接命令时,文件名、目录名或卷标语法不正确
我正在尝试使用一行命令运行一系列命令。本例中的顺序很简单 “cd”;mkdir C:\Users\Admin\Documents\test' 单独在命令提示符下,这些命令工作正常,但当我尝试执行整个脚本时,会出现错误在Windows 10 CMD中运行链接命令时,文件名、目录名或卷标语法不正确,windows,powershell,cmd,windows-10,prompt,Windows,Powershell,Cmd,Windows 10,Prompt,我正在尝试使用一行命令运行一系列命令。本例中的顺序很简单 “cd”;mkdir C:\Users\Admin\Documents\test' 单独在命令提示符下,这些命令工作正常,但当我尝试执行整个脚本时,会出现错误文件名、目录名或卷标语法不正确 相同的命令序列在powershell中运行正常,但在命令提示符中运行不正常 这里可能有什么问题?使用&&将仅在上一个命令成功时继续执行命令。如果目录已经存在,则返回值1,而不是0 如果希望运行后续命令而不考虑上一个命令的成功或失败,请使用&。使用&&将
文件名、目录名或卷标语法不正确
相同的命令序列在powershell中运行正常,但在命令提示符中运行不正常
这里可能有什么问题?使用&&
将仅在上一个命令成功时继续执行命令。如果目录已经存在,则返回值1
,而不是0
如果希望运行后续命令而不考虑上一个命令的成功或失败,请使用&
。使用&&
将仅在上一个命令成功时继续执行命令。如果目录已经存在,则返回值1
,而不是0
如果希望运行后续命令而不考虑上一个命令的成功或失败,请使用&
。PowerShell和cmd
是不同的,因此具有不同的语法
在cmd
中,&
和&
是
人物:&
语法:command1和command2
定义:用于在一个命令行上分隔多个命令。Cmd.exe运行第一个命令,然后运行第二个命令
人物:&&
语法:command1&&command2
定义:仅当符号前面的命令成功时,才用于运行&&后面的命令。Cmd.exe运行第一个命令,然后仅当第一个命令成功完成时才运行第二个命令
和代码>是用于分隔参数的特殊字符
字:;或者
语法:command1参数1;参数2
定义:用于分隔命令参数
在PowerShell中,代码>是语句终止符。这通常用于在同一行上运行两个命令,就像中间有新行一样。PowerShell和cmd
是不同的,因此具有不同的语法
在cmd
中,&
和&
是
人物:&
语法:command1和command2
定义:用于在一个命令行上分隔多个命令。Cmd.exe运行第一个命令,然后运行第二个命令
人物:&&
语法:command1&&command2
定义:仅当符号前面的命令成功时,才用于运行&&后面的命令。Cmd.exe运行第一个命令,然后仅当第一个命令成功完成时才运行第二个命令
和代码>是用于分隔参数的特殊字符
字:;或者
语法:command1参数1;参数2
定义:用于分隔命令参数
在PowerShell中,代码>是语句终止符。这通常用于在同一行上运行两个命令,就像中间有一个新行一样。我建议首先阅读解释操作符&
和&
以及|
,它们可以在批处理文件或Windows命令提示符中使用
此示例中包含多个命令的右侧命令行为:
cd \ & mkdir "C:\Users\Admin\Documents\test" 2>nul
第一个命令cd\
将当前目录设置为当前驱动器的根目录,尽管这不是必需的
第二个命令“C:\Users\Admin\Documents\test”2>nul
创建整个目录树(默认情况下启用了命令扩展名)。如果出现类似此目录已存在的错误,则命令MKDIR的退出代码为1
表示失败,而不是0
表示成功。使用2>nul
将错误消息从句柄STDERR重定向到设备nul以抑制它
当然,也有可能无法创建目录,因为使用的用户帐户没有创建此目录的权限,或者目录C:\Users\Admin\Documents
中已有一个名为test
的文件。因此,最好使用:
cd \ & ( if not exist "C:\Users\Admin\Documents\test\" mkdir "C:\Users\Admin\Documents\test" 2>nul ) & echo OK
更多命令可以附加&
,&
或|
如此处所示,如果创建目录的条件和结果为,则始终独立于执行echo OK
。我建议首先阅读解释操作符&
和&
和|
,它们可以在批处理文件或Windows上使用命令提示符
此示例中包含多个命令的右侧命令行为:
cd \ & mkdir "C:\Users\Admin\Documents\test" 2>nul
第一个命令cd\
将当前目录设置为当前驱动器的根目录,尽管这不是必需的
第二个命令“C:\Users\Admin\Documents\test”2>nul
创建整个目录树(默认情况下启用了命令扩展名)。如果出现类似此目录已存在的错误,则命令MKDIR的退出代码为1
表示失败,而不是0
表示成功。使用2>nul
将错误消息从句柄STDERR重定向到设备nul以抑制它
当然,也有可能无法创建目录,因为使用的用户帐户没有创建此目录的权限,或者目录C:\Users\Admin\Documents
中已有一个名为test
的文件。因此,最好使用:
cd \ & ( if not exist "C:\Users\Admin\Documents\test\" mkdir "C:\Users\Admin\Documents\test" 2>nul ) & echo OK
更多命令可以附加&
,