Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何在不格式化的情况下将字符串传递给程序?_Powershell - Fatal编程技术网

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