【发布时间】:2017-08-16 15:48:13
【问题描述】:
问题
在 PowerShell 中,是否可以使用包含通配符的部分路径(例如:C:\*\SomeFolder\MyBackup)创建新文件目录?如果有,怎么做?
详情
我正在使用 PowerShell 创建一个应用程序,该应用程序的一部分让用户指定一个备份目录。这个目录可能是一个确切的路径,但我也希望可以使用通配符。话虽如此,我知道如果提供的路径是绝对的,我可以轻松使用MD C:\SomePath\ 或New-Item "C:\SomePath\" -FileType Directory;但是,每当我尝试使用通配符执行此操作时,它都会失败。
示例:这些都在我尝试时失败了
MD "C:\*\MyBackups\AppBackup"New-Item "C:\*\MyApp\Backup" -FileType Directory$fullPath = "C:\*\MyApp\Backup" | Resolve-Path$fullPath = Resolve-Path "C:\*\MyApp\Backup"$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("C:\*\MyApp\Backup")
现在,我知道部分失败是通配符本身,因为该命令不理解如何解释它。
我研究了诸如New-Item、Convert-Path、Resolve-Path 和Split-Path 之类的东西,但找不到与我想做的事情相关的任何东西。
【问题讨论】:
-
相对于什么?
-
“相对路径”的意思是“相对于我当前的位置”。
..表示“当前位置的父级”。添加\和另一个..表示“父母的父母”。因此,如果您的当前位置是C:\Program Files (x86)\Microsoft Office\Office14,则符号..\..指的是C:\Program Files (x86)。 -
更新了基础帖子以更好地澄清......我的意思是“部分路径”而不是“相对路径”
-
它需要通过某种方法知道 * 表示什么。它可以是相对的,但必须在尝试执行新项目之前捕获该相对位置。 * 是用户输入的吗?
-
部分路径是路径的一部分。您所拥有的是带有通配符的路径。
标签: powershell wildcard filepath create-directory