Windows에서 사용자 정의 문자를 검색하는 방법은 무엇입니까?

Windows에서 사용자 정의 문자를 검색하는 방법은 무엇입니까?

현재 Windows 7은 영어로 되어 있습니다. 영어가 아닌 문자가 포함된 일부 파일을 다른 컴퓨터에서 전송했습니다. 아래 그림을보세요

여기에 이미지 설명을 입력하세요

이제 모두 삭제하고 싶습니다. 하지만 검색창에 이 문자를 입력해도 원하는 파일이 제공되지 않습니다.

여기에 이미지 설명을 입력하세요

영어가 아닌 문자나 단어가 아닌 문자가 포함된 파일을 모두 삭제하려면 어떻게 해야 하나요?

답변1

Cihad, PowerShell이 ​​아마도 여기서 가장 좋은 방법일 것입니다.

아래 코드를 사용하여 폴더에서 영어가 아닌 모든 문자를 찾기 위해 약간의 테스트를 수행했습니다.

Get-ChildItem c:\TurkishFileNames\ | where-object {$_.name -match "[^\x00-\x80]+"}

그러면 영어가 아닌 파일 이름이 모두 반환됩니다. 그런 다음 항목을 제거할 수 있지만 먼저 올바른 이름을 얻고 있는지 확인하십시오. 여기서 한 가지 문제는 '폴더' 이름에 대해 이야기하고 있다는 것인데, 저는 이것을 파일 이름으로 테스트했습니다.

그래도 나는 당신도 같은 트릭을 사용할 수 있다고 믿습니다. PowerShell 3.0 또는 4.0이 설치되어 있는 경우 Get-ChildItem을 사용할 때 -directory를 사용하여 폴더 이름만 표시할 수 있습니다.

Get-ChildItem c:\TurkishFolderNames\ -directory

나머지는 비슷할 겁니다. Microsoft에서 PowerShell 3.0 또는 4.0을 다운로드할 수 있습니다.

http://www.microsoft.com/en-us/download/details.aspx?id=34595(WMF 3.0)

http://www.microsoft.com/en-us/download/details.aspx?id=40855(WMF 4.0)

Windows 7에는 PowerShell 2.0이 포함되어 있습니다. 계속 사용한다면 이전 구문을 사용하여 디렉터리만 가져올 수 있습니다.

Get-ChildItem C:\TurkishFolderNames\ | ? {$_.PsIsContainer -eq $true}

그런 다음 나머지 작업을 진행할 수 있습니다.

Get-ChildItem C:\TurkishFolderNames\ | ? {$_.PsIsContainer -eq $true} | ? {$_.name -match "[^\x00-\x80]+"}

답변2

내 좋은 친구인 Adam의 말을 인용하면 다음과 같습니다.파일명에 있는 달러 금액으로 검색할 수 없습니다.

다음과 같은 방법으로 검색을 래핑해야 할 수도 있습니다.

~="searchterm"

답변3

특정 문자가 포함된 파일을 찾는 가장 빠른 방법은 다음과 같습니다.파워셸

dir D:\* -r -include *∓*

당신은 또한 사용할 수 있습니다유니코드 표기법: 0x2213는 다음과 같습니다U+2213

$char = [char]0x2213
dir D:\* -r -include *$char*

그런데. Windows 검색을 사용하면 특수 문자로 올바른 결과를 얻을 수 있습니다!
뭔가 잘못 구성한 것이 확실합니까? (내 구성)

여기에 이미지 설명을 입력하세요

관련 정보