Mic*_*cah 24 string powershell scripting
我正在尝试在PowerShell中构建文件路径,字符串连接似乎有点时髦.
我有一个文件夹列表:
c:\code\MyProj1
c:\code\MyProj2
Run Code Online (Sandbox Code Playgroud)
我想在这里获取DLL文件的路径:
c:\code\MyProj1\bin\debug\MyProj1.dll
c:\code\MyProj2\bin\debug\MyProj2.dll
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试做的事情:
$buildconfig = "Debug"
Get-ChildItem c:\code | % {
Write-Host $_.FullName + "\" + $buildconfig + "\" + $_ + ".dll"
}
Run Code Online (Sandbox Code Playgroud)
这不起作用.我该如何解决?
rav*_*nth 27
试试这个
Get-ChildItem | % { Write-Host "$($_.FullName)\$buildConfig\$($_.Name).dll" }
Run Code Online (Sandbox Code Playgroud)
在你的代码中,
$build-Config 不是有效的变量名称. $.FullName 应该 $_.FullName$ 应该 $_.Name小智 14
您可以使用PowerShell等效的String.Format - 它通常是构建字符串的最简单方法.将{0},{1}等放在字符串中变量的位置,在字符串-f后面紧跟一个,然后用逗号分隔变量列表.
Get-ChildItem c:\code|%{'{0}\{1}\{2}.dll' -f $_.fullname,$buildconfig,$_.name}
Run Code Online (Sandbox Code Playgroud)
(我已经从$ buildconfig变量名中删除了破坏,因为我已经看到它也会导致问题.)
尝试Join-Path cmdlet:
Get-ChildItem c:\code\*\bin\* -Filter *.dll | Foreach-Object {
Join-Path -Path $_.DirectoryName -ChildPath "$buildconfig\$($_.Name)"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99010 次 |
| 最近记录: |