현재 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"