首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PowerShell中连接字符串和变量?

如何在PowerShell中连接字符串和变量?
EN

Stack Overflow用户
提问于 2010-10-20 21:58:27
回答 4查看 101.2K关注 0票数 25

我正在尝试用PowerShell构建一个文件路径,字符串连接看起来有点时髦。

我有一个文件夹列表:

代码语言:javascript
运行
复制
c:\code\MyProj1
c:\code\MyProj2

我想在这里获取DLL文件的路径:

代码语言:javascript
运行
复制
c:\code\MyProj1\bin\debug\MyProj1.dll
c:\code\MyProj2\bin\debug\MyProj2.dll

这是我想要做的:

代码语言:javascript
运行
复制
$buildconfig = "Debug"

Get-ChildItem c:\code | % {
    Write-Host $_.FullName + "\" + $buildconfig + "\" + $_ + ".dll"
}

这不管用。我怎么才能修复它?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-20 22:07:57

尝尝这个

代码语言:javascript
运行
复制
Get-ChildItem  | % { Write-Host "$($_.FullName)\$buildConfig\$($_.Name).dll" }

在代码中,

  1. $build-Config不是有效的变量名。
  2. $.FullName应为$_.FullName
  3. $应为$_.Name
票数 30
EN

Stack Overflow用户

发布于 2010-10-20 22:22:00

您可以使用String.Format的PowerShell等效项-这通常是构建字符串的最简单方法。将{0}、{1}等放在字符串中需要的变量位置,将-f紧跟在字符串后面,然后是用逗号分隔的变量列表。

代码语言:javascript
运行
复制
Get-ChildItem c:\code|%{'{0}\{1}\{2}.dll' -f $_.fullname,$buildconfig,$_.name}

(我还去掉了$buildconfig变量名中的破折号,因为我以前也看到过这会导致问题。)

票数 14
EN

Stack Overflow用户

发布于 2010-10-21 17:28:12

尝试Join-Path cmdlet:

代码语言:javascript
运行
复制
Get-ChildItem c:\code\*\bin\* -Filter *.dll | Foreach-Object {
    Join-Path -Path  $_.DirectoryName -ChildPath "$buildconfig\$($_.Name)" 
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3978639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档