gpt4 book ai didi

powershell - 从单个参数解析文件名和目录

转载 作者:行者123 更新时间:2023-12-02 22:43:16 28 4
gpt4 key购买 nike

我正在编写一个脚本,该脚本将创建用于进一步自动化的 XML 文档。其中,dropDirfileName 应该是参数。但由于这些都是必需的,并且文件将始终位于 dropDir 中。

我想知道是否有一种方法可以将这两个参数组合成一个参数,然后从单个字符串中解析出文件?

例如,用户将调用脚本:

.\iAmAScript.ps1 -path C:\prodfiles\settings.xml

在 iAmAScript 内部,逻辑上它会采取以下行动:

If (![System.IO.File]::Exists($path)){
New-Item $path -type file
$dropLoc = $path.<some method returning C:\prodfiles\>
$fileName = $path.<some method returning settings.xml>
}

我只是不太确定如何在 Powershell 的上下文中执行此操作,这是尝试找出在 Powershell 中使用 LastIndexOf 方法将所有内容截断到最后一个\?的左边

最佳答案

您可以使用 Split-Path获取这些组件:

$file = $path | Split-Path -Leaf
$dir = $path | Split-Path -Parent

.NET方法如下:

$file = [System.IO.Path]::GetFileName($path)
$dir = [System.IO.Path]::GetDirectoryName($path)

您还可以获取项目并使用其属性:

$item = Get-Item -Path $path
$item.Name # the file
$item.DirectoryName #the directory

此对象可以传递给大多数接受文件参数的 cmdlet,并且它公开了其他方法。不过,要执行此操作,文件必须首先存在,因此您必须创建它然后获取该项目,但这在稍后的脚本中可能会有用。

关于powershell - 从单个参数解析文件名和目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37310579/

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