Powershell:如何获取文件的位置,取决于文件名?

问题描述 投票:0回答:1

因此,我的任务是编写一个PS脚本,该脚本输出数据库文件的位置。该文件的位置是:

C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\Mailbox database Name\Mailbox database Name.edb 

我认为可以使用以下方式获取我的Exchange数据库的名称

Get-MailboxDatabase | fl Name

具有输出:

Mailbox Database 0161713049

这是数据库的名称,但实际名称前后有很多不可见的字符。

所以我的问题是,如何摆脱这些看不见的字符?我想连接一个字符串,使其看起来像这样:

C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\Mailbox Database 0161713049\Mailbox Database 0161713049.edb

我也需要此代码在具有完全不同的数据库名称的服务器上工作,因此从.Remove()开头简单地删除不需要的字符可能会有所帮助,但是由于我不确定,名称的长度数据库中,我无法删除结尾的字符。

而且我也无法摆脱这样一种感觉,即有一种更简单的方法来获取.edb文件的位置,因此,如果是这种情况,请点亮我!

string powershell location substring exchange-server
1个回答
0
投票

Powershell将几乎所有输出都视为具有哈希表格式的属性的对象,例如@{Name=MYEXCHDB}。如果只想将属性值作为字符串,则必须像@AdminOfThings建议的那样扩展它:

Get-MailboxDatabase | Select-Object -ExpandProperty Name

将名称连接成字符串:

$myString = "C:\path\to\$(Get-MailboxDatabase | Select-Object -ExpandProperty Name)"

而且正如@ mathias-r-jessen所建议的那样,数据库的路径是您可以直接获得的另一个属性:

Get-MailboxDatabase | Select-Object -ExpandProperty EdbFilePath
© www.soinside.com 2019 - 2024. All rights reserved.