-1

我正在尝试格式化此命令的输出以仅获取 dfsnamespace :

\\F-TYPHON\DATA13\AI-Project

我不能使用Get-DfsnFolderTargetcmdlet,因为RSAT-DFS-Mgmt-Con 它没有安装在所有服务器上,我无法安装它。

$DFSPath="\\F-TYPHON\shared\AI-Project"

PS C:\> dfsutil client property state $DFSPath

Active, Online      \\F-TYPHON\DATA13\AI-Project

Done processing this command.

我试过这个。

PS C:\> $dfs=dfsutil client property state $DFSPath

PS C:\> $dfs.trimstart("Active, Online")

方法调用失败,因为 [System.Object[]] 不包含名为“trimstart”的方法。在 line:1 char:15 + $dfs.trimstart <<<< ("Active, Online") + CategoryInfo : InvalidOperation: (trimstart:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound

任何帮助都将不胜感激 我可以列出文件管理器的所有卷数据,但结构中存在许多不连贯性,因此我只需要在文件管理器的“共享”下列出共享文件夹,然后使用 dfsutil 处理它以获得绝对路径

4

2 回答 2

0

使用正则表达式匹配 dfsutil 的文本输出:

$DFSPath="\\F-TYPHON\shared\AI-Project"

if ((dfsutil client property state $DFSPath) -match "(?<=\s{2,})\\\\.*"){
   $DFSNameSpace = $Matches.Value
}
  • 这里(?<=\s{2,})\\\\.*匹配两个或多个后向空格\s后跟
    两个(转义)反斜杠和该行的其余部分。
于 2019-04-22T23:10:56.880 回答
0

谢谢你的帮助我找到了一个解决方案,我可以使用它不是 100% powershell,但我可以用它来提取输出格式,我可以在循环中使用它,而不是用 powershell 制作自动 robocopylines

这里是我找到的输出代码

$DFSPath="\F-TYPHON\shared\AI-Project"

$dfs​​path=(dfsutil 客户端属性状态 $DFSPath |findstr /i \F-TYPHON)|out-string

$dfs​​=$dfspath.Trimstart("活动,在线")

write-host $dfs 输出是

\F-台风\DATA13\AI-项目

它当然不是最好的,但我可以使用它

如果您有任何其他建议,欢迎您

于 2019-04-23T00:32:45.333 回答