programing

PowerShell에서 문자열을 변수와 연결하려면 어떻게 해야 합니까?

lovecodes 2023. 8. 13. 10:10
반응형

PowerShell에서 문자열을 변수와 연결하려면 어떻게 해야 합니까?

PowerShell에서 파일 경로를 구축하려고 하는데 문자열 연결이 약간 펑키한 것 같습니다.

폴더 목록이 있습니다.

c:\code\MyProj1
c:\code\MyProj2

여기서 DLL 파일의 경로를 가져옵니다.

c:\code\MyProj1\bin\debug\MyProj1.dll
c:\code\MyProj2\bin\debug\MyProj2.dll

제가 하려는 일은 다음과 같습니다.

$buildconfig = "Debug"

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

이거 안 돼요.어떻게 고칠 수 있습니까?

사용해 보세요.

Get-ChildItem  | % { Write-Host "$($_.FullName)\$buildConfig\$($_.Name).dll" }

당신 코드에서,

  1. $build-Config올바른 변수 이름이 아닙니다.
  2. $.FullName그래야 한다$_.FullName
  3. $그래야 한다$_.Name

String과 동등한 PowerShell을 사용할 수 있습니다.형식 - 일반적으로 문자열을 만드는 가장 쉬운 방법입니다.문자열에 변수를 넣을 {0}, {1} 등을 배치합니다.-f문자열 바로 뒤에 변수 목록을 입력하고 쉼표로 구분합니다.

Get-ChildItem c:\code|%{'{0}\{1}\{2}.dll' -f $_.fullname,$buildconfig,$_.name}

(이전에도 문제를 일으키는 $buildconfig 변수 이름에서 대시를 제거했습니다.)

Join-Path cmdlet을 사용해 보십시오.

Get-ChildItem c:\code\*\bin\* -Filter *.dll | Foreach-Object {
    Join-Path -Path  $_.DirectoryName -ChildPath "$buildconfig\$($_.Name)" 
}

디렉토리 구조의 정규식과 일치하는 모든 dll 파일과 필터 파일을 가져옵니다.

Get-ChildItem C:\code -Recurse -filter "*.dll" | where { $_.directory -match 'C:\\code\\myproj.\\bin\\debug'}

추가할 수 있는 개체가 아닌 경로만 원하는 경우| select fullname이렇게 끝까지:

Get-ChildItem C:\code -Recurse -filter "*.dll" | where { $_.directory -match 'C:\\code\\myproj.\\bin\\debug'} | select fullname

언급URL : https://stackoverflow.com/questions/3978639/how-do-i-concatenate-strings-with-variables-in-powershell

반응형