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" }
당신 코드에서,
$build-Config올바른 변수 이름이 아닙니다.$.FullName그래야 한다$_.FullName$그래야 한다$_.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
'programing' 카테고리의 다른 글
| Oracle DB 버전을 가져오기 위한 쿼리 (0) | 2023.08.13 |
|---|---|
| Springfox Swagger에서 제공하는 Swagger /v2/api-docs에서 CORS 헤더를 활성화하려면 어떻게 해야 합니까? (0) | 2023.08.13 |
| JUNit을 사용한 유닛 테스트에서 스프링이 자동 배선되지 않음 (0) | 2023.08.13 |
| Next.js에서 Redx를 사용하는 것은 안티패턴입니까? (0) | 2023.03.26 |
| '@Bean' 메서드에서 '@ConfigurationProperties' 주석 사용 (0) | 2023.03.26 |