powershell의 조건문에 -match
기능과 관련된 문제가 있습니다.Powershell - 일치 및 이상한 결과
Test.dll에 (이 DLL이있는 [TestClass]
단어가 있습니다)
Test1 파일 :
내가 3 개 파일을 말해봐. dll (이 DLL에는 괄호가없는TestClass
이 있습니다)
Test2. dll을 내가 가지고있는 파일을 검색하고
(이 DLL이 전혀없는)에만 [TestClass]
내가 다음 코드를 사용하는 경우 Test.dll에이 상태에서 Test1.dll 작업 모두 :
if ([IO.File]::ReadAllText($_) -match "TestClass")
{
$ProjectTestContainers += $_
Write-Host $ProjectTestContainers
}
이해야한다 (그런데, 각 $_
는 DLL입니다),하지만 그건 내가 원하는 게 아니에요. 난 단지 [TestClass]
를 포함하는 파일 그래서 나는이 모든 조건, Test.dll에, Test1.dll 및 Test2.dll, 작동되는 말아야이
if ([IO.File]::ReadAllText($_) -match "`[TestClass`]")
{
$ProjectTestContainers += $_
Write-Host $ProjectTestContainers
}
을 시도합니다. 그것은 단지 나를 포함해야합니다 Test.dll을 제공해야합니다.
아이디어가 있으십니까? 나 한테 더 필요한 것이 있으면 알려줘.
이 아닌가'dll's 컴파일? 파일이 바이너리 인 경우 문자열을 어떻게 일치시킬 것입니까? – arco444
많은 코드가 미리 작성되었지만 어떻게 든 DLL을 검색합니다. 그것은 첫 번째 예제에서 'TestClass'를 찾고 있기 때문에 작동합니다. 그러나 그것은 단지 '[TestClass]'가 아니라 'TestClass'를 사용하고 있습니다. 나는 어떻게 든 그것이 dll에서 텍스트를 읽을 수 있다고 가정하고있다. –
내가 생각했던 것보다 더 큰 수정이라고 생각합니다. 원래이 파일을 작성한 사람은 dll에서 읽는 것입니다. dll은 처음에는 이상한 파일입니다. 그것은 어쨌든 어떤 경우에는 성냥을 찾는 것입니다. 그것은 이상합니다. 그것이 dll과 같이 작동해서는 안되기 때문에 우연히 될지도 모릅니다. 이것은 순수한 추악함입니다. 그래서 arco444, 당신 말이 맞을지도 모릅니다. 이 코드를 다시 작성해야 할 것입니다. –