Powershell 如何在不格式化的情况下将字符串传递给程序?
Powershell 如何在不格式化的情况下将字符串传递给程序?,powershell,Powershell,gci something | select{$\.FullName}foreach{.\echoargs.exe$\}显示,我认为只是一个字符串的内容作为@{$\.FullName=C:\something}传递给可执行文件。如果我尝试使用.ToString()之类的东西“将其转换为字符串”,它只会作为{$\uU4.FullName.ToString()=添加进来,我如何摆脱这种额外的{格式,只将字符串传递给可执行文件?您所经历的是PowerShell会发送对象的“字符串化”表示您有,比如@{
gci something | select{$\.FullName}foreach{.\echoargs.exe$\}
显示,我认为只是一个字符串的内容作为@{$\.FullName=C:\something}
传递给可执行文件。如果我尝试使用.ToString()之类的东西“将其转换为字符串”,它只会作为{$\uU4.FullName.ToString()=
添加进来,我如何摆脱这种额外的{
格式,只将字符串传递给可执行文件?您所经历的是PowerShell会发送对象的“字符串化”表示您有,比如@{$\ FullName=C:\something}
Get ChildItem
(gci)返回具有大量属性的FileInfo或DirectoryInfo对象。管道,选择对象全名,然后返回带有一个属性的对象,即全名,但它们仍然是对象,而不是字符串 您真正想要的是只发送全名路径作为字符串,因此您需要使用
Select-Object -ExpandProperty FullName
或
获取将发送到外部应用程序的(一组)字符串。
选择Object-ExpandProperty FullName
或(get-ChildItem-Path某物)。FullName
成功了,谢谢。如果您想发布与答案相同的内容,我将接受。
(Get-ChildItem -Path something).FullName