Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell mkdir和mkdir-p之间的区别?_Powershell_Command Line - Fatal编程技术网

Powershell mkdir和mkdir-p之间的区别?

Powershell mkdir和mkdir-p之间的区别?,powershell,command-line,Powershell,Command Line,我一直在学习如何在PowerShell中使用命令行界面。在本文中,它告诉我使用命令mkdir-pilike\icecream。在底部,它解释了“mkdir-p将生成一个完整的路径,即使所有目录都不存在。” 我很困惑,因为没有-p参数的mkdir I\like\icecream仍然做同样的事情。我做过一些实验,比如创建一个“一”目录,然后用mkdir创建“一\二\三”,它会自动创建一个两个目录,让三个人放在其中。在这种情况下,PowerShell是否自动假定为-p或类似的情况?我不知道这个参数的作

我一直在学习如何在PowerShell中使用命令行界面。在本文中,它告诉我使用命令
mkdir-pilike\icecream
。在底部,它解释了“
mkdir-p
将生成一个完整的路径,即使所有目录都不存在。”


我很困惑,因为没有
-p
参数的
mkdir I\like\icecream
仍然做同样的事情。我做过一些实验,比如创建一个“一”目录,然后用
mkdir
创建“一\二\三”,它会自动创建一个两个目录,让三个人放在其中。在这种情况下,PowerShell是否自动假定为
-p
或类似的情况?我不知道这个参数的作用是什么。

PowerShell尽最大努力确定您所指的参数,即使您没有完全给出它。因此,如果使用
-p
参数,则实际上使用的是
-path

对于mkdir函数,
-path
参数告诉函数要创建的路径
-path
默认情况下也是函数的第一个参数(如果未提供显式参数)。因此,就函数而言,使用
-p
-path
)调用函数和不使用
-p
调用函数是完全相同的

有关详细信息,请在外壳类型中:

Get-Help mkdir
我还将澄清,当您调用mkdir时,您真正要做的是调用New-Item cmdlet并将-ItemType参数指定为Directory。这就是为什么在运行该命令时会看到新项目帮助。如果要查看mkdir函数的实际代码以了解它是如何实现的,请执行以下操作:

(get-command mkdir).ScriptBlock

如果我们使用

  • 如果目录已经存在,mkdir,mkdir将抛出异常,因此我们需要检查 在同一路径上创建目录之前
鉴于

  • mkdirp,mkdirp始终自动检查目录是否存在于 指定的路径,因此无需执行任何检查

啊,这是有道理的。本教程之前只让我使用了
mkdir
,然后它抛出了
-p
这个东西,它看起来没有什么不同。谢谢你的快速回答!我认为
-p
源于与
mkdir
的*nix变体的混淆,后者在
-p
上的作用确实不同,正如教程所建议的,还可以创建任何缺少的父文件夹。powershell团队共同努力,提供别名和具有名称的函数,以使*nix管理员更舒适。有时我想它也会增加一些混乱。”(get命令mkdir).ScriptBlock“在我尝试它时没有返回任何内容(PowerShell 2.0,Windows 7)。