Windows에서 유효하지 않은 문자가 포함 된 파일 삭제


16

파일 이름에 콜론 문자가 포함 된 파일이 있습니다 (예 : 1d67c0d23e859ed4a259749e4a720d9e : default-sink). 명령을 사용하여 명령 줄에서 제거하려고하면 :

c:\backup> del /F *.*

"시스템이 지정된 파일을 찾을 수 없습니다." 각 파일마다. 개별 파일을 지정하면 :

c:\backup> del /F "1d67c0d23e859ed4a259749e4a720d9e:default-sink"

"파일 이름, 디렉토리 이름 또는 볼륨 레이블 구문이 올바르지 않습니다."가 표시됩니다. 부모 폴더에서 rd를 사용하려고하면

이 파일들을 어떻게 제거 할 수 있습니까?


2
이 파일들은 Linux로 부팅 할 때 NTFS 파티션에서 생성되었습니다. Windows가 파일 시스템 드라이버 수준에서 파일 이름의 콜론과 같지 않기 때문에 Linux 부팅 디스크를 사용해야한다고 생각합니다.
grom

답변:


22

이러한 파일을 삭제하는 가능한 방법을 나열한 Microsoft KB 기사가 있습니다.

http://support.microsoft.com/kb/320081

내가 일반적으로 사용하는 방법은 기본 API 메소드입니다.

del "\\?\c:\path\1d67c0d23e859ed4a259749e4a720d9e:default-sink"

에 따르면 :

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

(가) :NTFS에 예약 문자, 제가 위에서 언급 한 네이티브 API의 방법은 파일을 삭제하기 위해 권장되는 방법입니다.


4
콜론에는 명명 된 데이터 스트림으로 해석되므로 작동하지 않습니다.
psusi

이것은 내 경우에 효과가있었습니다. 내가 문제가 있었던 파일에는 쉼표가 포함되어 있습니다,
Maher Fattouh

고마워, 이것은 나를 위해 일했다. 파일이 마침표로 끝났습니다. CA848D8F.
Mastro

1
작동하지 않습니다. 내 파일 이름에 백 슬래시가 포함되어 있습니다.
Pacerier

파일 이름 :에 OP가 요청한 내용이 포함되어 있으면 이 방법이 작동하지 않습니다. chkdsk라이브 리눅스에서 사용 하거나 삭제하십시오.
Sourav Ghosh

15

8.3 이름을 사용해보십시오.

del /F 1d67c0~1

NTFS 드라이브에서는 8.3 기능을 명시 적으로 비활성화 할 수 있으므로이 경우에는이 옵션을 사용하지 않는 것이 좋습니다. 파일 이름을 얻으려면dir /x

이전에는 프리웨어 도구가 delinvfile있었지만 쉐어웨어 / 유료로 변경했습니다.


format8.3 이름 지원이 비활성화 된 명령으로 생성 된 NTFS 볼륨에서 어떻게이 작업을 수행 할 수 있습니까?
user2284570

1
@ user2284570이 방법은 작동하지 않습니다. 이 답변을 쓸 때 Microsoft는 8.3 이름을 사용하도록 설정했지만 요즘에는 기본적으로 사용하지 않도록 설정되어 있습니다.
Mark Henderson

@MarkHenderson, 내 파일 이름은 7:2입니다. 8.3의 파일 이름을 어떻게 사용 7:2합니까?
Pacerier

@Pacerier 내 이전 의견을 참조하십시오. 이 방법은 최신 운영 체제에서는 작동하지 않습니다. Windows XP 이상
Mark Henderson

13

이것은 나를 위해 일했다 :

  1. chkdsk /f
  2. 재부팅 된 PC
  3. 그런 다음 파일을 선택하고 삭제할 수있었습니다.

4

열린 경우 해당 파일이 포함 된 드라이브에 저장된 모든 파일을 닫으십시오. 이제 드라이브 속성을여십시오.

"내 컴퓨터"-> "이 드라이브를 마우스 오른쪽 버튼으로 클릭하십시오"> 속성

그런 다음 ' 도구 '탭으로 이동하여 '오류 확인'레이블 아래에서 ' 지금 확인'을 클릭하십시오 .

여기에 이미지 설명을 입력하십시오큰 이미지를 보려면 여기를 클릭하십시오

이렇게하면 드라이브가 마운트 해제되고 전체 드라이브에서 오류가 있는지 검사하여 결국 불법 이름을 가진 해당 파일을 삭제합니다. 완료되면 일부 파일이 수정되었다는 메시지가 표시됩니다.

외장 하드 디스크에서 이러한 파일을 성공적으로 삭제했습니다.


3

내가 가진 UNIX 기반 응용 프로그램 용 하위 시스템 내 PC (윈도우 7)에 설치되어 있어야합니다. Windows 셸에서을 사용하여 파일을 touch 1d67c0d23e859ed4a259749e4a720d9e:default-sink만든 다음rm *:*


POSIX 호환 유틸리티 (예 : SFU)는 이러한 파일을 삭제할 수 있습니다.
Ausmith1

@JoeInternet : sigghh Microsoft는 2012 년부터 Windows 이외의 모든 하위 시스템을 제거했습니다.
user2284570

...하지만 유닉스 서브 시스템은 다시 10. 승리
user165568

1

상위 폴더의 이름을 단일 문자 (a, 1 등)로 바꾸고 상위 폴더를 삭제하십시오. 작동하지 않으면 첫 번째 하위 폴더로 이동하여 단일 문자로 이름을 바꾸고 삭제를 다시 시도하십시오. 나는 종종 잘못된 문자가있는 파일 (알지 못하기 때문에 어떻게 생성되는지 묻지 않음) 또는 경로가 최대 값을 초과하는 파일 (이것이 어떻게 발생하는지 묻지 않음) 에이 방법을 사용합니다.


1

7zip 은 Windows가 실패한 파일을 삭제할 수 있습니다. 긴 파일 이름을 처리 할 때는 과거에 사용했지만 콜론이있는 파일에서는 시도한 적이 없습니다. 일반적으로 ADS를 나타내는 데 사용됩니다.


7-zip은 cygwin을 사용하기 때문입니다.
user2284570

1
두 파일 모두에서 작동하지 않습니다. 첫 번째 파일의 이름은 백 슬래시이고 두 번째 파일의 이름은 콜론입니다.
Pacerier

아니요, 7-zip은 셸 대신 Windows API를 사용하기 때문입니다. API와 동일한 제한 사항이 있습니다. 콜론은 스트림을 나타냅니다.
user165568

7zip과는 나를 위해 일한
user1278519

1

나는 이중 부팅 시스템을 가지고 있으며 위의 답변 중 어느 것도 나를 위해 일하지 않았다. 파일이 다른 OS (Ubuntu 16.04 LTS)에 의해 마운트 된 디스크에있는 경우 다른 OS를 사용하여 파일을 간단하게 삭제할 수 있습니다.)


바인드 상태 일 때는 상당히 합리적입니다 (온라인 시스템에서는 수행 할 수 없지만). 또한 Fedora 설치 프로그램 디스크 또는 Knoppix와 같은 실시간 배포를 부팅 할 수 있으므로 기본 이중 부팅이 필요하지 않습니다. 그러나이 시스템을 마운트하는 데 사용하는 NTFS3G 드라이버는 대부분의 Windows 권한 / ACL을 존중하지 않기 때문에 이와 같은 환경에서는주의해야합니다 (이는 "고착 된"파일을 제거하는 데 효과적인 이유입니다). .
스풀러

0

파일 이름을 인용 해 보셨습니까? 실행중인 정확한 명령을 내리는 것이 편리합니다.


내가 질문하기 위해 실행중인 정확한 명령에 추가했습니다.
grom December

0

와일드 카드를 사용해 보셨습니까? 예를 들어 'del 1d67c0d23e859ed4a259749e4a720d9e *. *'가 작동 할 수 있습니다.


와일드 카드를 사용해 보았습니다. 운이
그롬하지

1
다음으로 생각할 것은 리눅스 CD (시스템 복구 CD와 같은)로 시스템을 부팅하고 볼륨을 마운트 한 다음 삭제를 시도하는 것입니다. 누가 파일 시스템에서 실제로 무슨 일이 일어나고 있는지 알기 때문에 그 시점에서 흥미로운 결과를 얻을 수 있습니다.
마이클 코네

@MichaelKohne : 유닉스 경로 구현을 사용하는 것도 올바른 해결책이라고 생각합니다. 그러나 왜 리눅스를 사용 하는가? windows는 NT 서브 시스템으로 실행되며 이미 POSIX / Unix NT 서브 시스템이 있습니다.
user2284570

1
@ user2284570-리눅스로 만들어 졌다는 사실을 감안할 때 리눅스 NTFS 드라이버는 Windows POSIX 쉘조차도 파일 시스템 드라이버를 지나칠 수 없었던 것을 허용하지 않은 것으로 보입니다. 라이브 리눅스 CD를 부팅하고 가짜 파일을 제거한 다음 Windows로 다시 부팅하는 것이 훨씬 간단합니다.
Michael Kohne

@MichaelKohne : 아니요. UNC 경로가 이미 작동하고 (기본 서브 시스템) POSIX 서브 시스템을 사용하면 대체 데이터 스트림에 직접 액세스 할 수 없으므로 :파일 내부에서 사용할 수 있습니다 .
user2284570


0

이름에 쉼표가있는 폴더가있었습니다. 위의 제안 중 일부를 시도했지만 작동하지 못했습니다.

cygwin으로 폴더를 삭제할 수있었습니다. 해당 앱을 설치하는 것은 모든 사람을위한 것이 아니라 작업을 수행합니다.


0

위의 제안 중 어느 것도 나를 위해 일하지 않았습니다. WinRar를 사용했습니다. winrar를 열면 의심스러운 파일 "filename"( "filename : some_text.txt"로 생성 된 파일)이있는 파일 목록이 표시됩니다. Winrar에서 파일 이름을 바꾸고 .txt 또는 .문서).

Windows 탐색기로 돌아가서 "filename .txt"(또는 doc)가 표시됩니다. 거기에서 삭제하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.