使用 PowerShell 进行文本操作



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

\F-TYPHONDATA13AI-Project

我无法使用Get-DfsnFolderTarget cmdlet,因为RSAT-DFS-Mgmt-Con未安装在所有服务器上,我无法安装它.

$DFSPath="\F-TYPHONsharedAI-Project"
PS C:> dfsutil client property state $DFSPath
Active, Online      \F-TYPHONDATA13AI-Project
Done processing this command.

我试过这个.

PS C:> $dfs=dfsutil client property state $DFSPath
PS C:> $dfs.trimstart("Active, Online")

方法调用失败,因为 [System.Object[]] 不包含名为"trimstart"的方法。 行:1 字符:15 + $dfs.trimstart <<<<("活动,联机"( + 类别信息 : 无效操作: (修剪开始:字符串( [], 运行时异常 + 完全限定错误 ID : 方法未找到

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

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

$DFSPath="\F-TYPHONsharedAI-Project"
if ((dfsutil client property state $DFSPath) -match "(?<=s{2,})\\.*"){
   $DFSNameSpace = $Matches.Value
}
  • 此处(?<=s{2,})\\.*匹配两个或多个空格s在回
    溯中后跟两个(转义的(反斜杠和行的其余部分。

感谢您的帮助我找到了一个解决方案,我可以以一种不是 100% PowerShell 的方式使用它,但我可以使用它来提取输出,我可以在循环中使用它,而不是使用 PowerShell 制作自动机器人复制线

这是我找到的输出代码

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

$dfspath=(dfsutil client property state $DFSPath |findstr/i \F-TYPHON(|out-string

$dfs=$dfspath。修剪开始("活动,在线"(

写入主机$dfs输出为

\F-TYPHON\DATA13\AI-Project

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

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

最新更新