在Windows 10 CMD中运行链接命令时,文件名、目录名或卷标语法不正确

在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 如果希望运行后续命令而不考虑上一个命令的成功或失败,请使用&。使用&&将

我正在尝试使用一行命令运行一系列命令。本例中的顺序很简单

“cd”;mkdir C:\Users\Admin\Documents\test'

单独在命令提示符下,这些命令工作正常,但当我尝试执行整个脚本时,会出现错误
文件名、目录名或卷标语法不正确

相同的命令序列在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
更多命令可以附加
&