gpt4 book ai didi

PowerShell 新项目位置参数奇数

转载 作者:行者123 更新时间:2023-12-04 18:31:07 25 4
gpt4 key购买 nike

鉴于 PowerShell 的 Microsoft 文档,我看不出为什么以下代码会因给定错误而失败。再说一次,当脚本太长时,PowerShell 可能会失败。所有路径都是双引号字符串。

##### ALGORITHM Take in keystore path, make a backup in an adjacent directory
$ksPath = $java_store_path.Substring(0, $java_store_path.LastIndexOf('\') + 1)
$backupPath = $ksPath + "backups"
New-Item $backupPath PowerShell -type directory -force

新项目:找不到接受参数“PowerShell”的位置参数。

https://technet.microsoft.com/en-us/library/ee176914.aspx
New-Item c:\scripts\Windows PowerShell -type directory

如果这是有效的,我的也应该如此。我在 Server 2012 R2 上运行。

最佳答案

该页面上的示例完全错误。似乎他们的意思是指路径 C:\Scripts\WindowsPowerShell或者他们忘记引用包含空格的目录。

所以它应该是其中之一:

New-Item c:\scripts\WindowsPowerShell -type directory
New-Item 'c:\scripts\Windows PowerShell' -type directory
New-Item "c:\scripts\Windows PowerShell" -type directory

问问自己,什么会 PowerShell单单一直指的是?它对应什么参数?

编辑:正如评论者所指出的,该示例应该显示 nameSet参数,其中一个单独的 -Path-Name被指定,据称 PowerShell应该是 -Name 的值范围。这看起来确实正确。该示例不起作用的原因(以及您的)是因为 -Name参数不能在位置上指定,您可以在我链接到下面的 MSDN 文章和内置帮助中看到:

Type: String
Parameter Sets: nameSet
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False


在那种情况下,他们的例子应该是这样的:
New-Item c:\scripts\Windows -Name PowerShell -type directory
New-Item -Path c:\scripts\Windows -Name PowerShell -type directory

所以重申,命名参数在这里会起作用,并且会避免混淆。

通常,您不应该在脚本中使用位置参数,除非它们非常清楚(即使如此,我建议避免使用)。

使用命名参数会使这更容易弄清楚。制表符完成有助于填写参数名称和完成路径(通常也有正确的引用)。

我认为您应该将您的更改为:
New-Item -Path $backupPath -Type Directory -Force

看了那篇technet文章,真的不太好。 MSDN article on New-Item更好,这是运行 Get-Help New-Item时应该看到的信息以及。

侧面问题:

Then again, PowerShell can fail when a script just gets too long.



什么?

关于PowerShell 新项目位置参数奇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41273679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com