포함 된 파일을 복사하는 방법 | 이름으로?


4

Windows 7에서는 |이름으로 파일을 복사 할 수 없습니다 . 나에게 오류를 준다 Can not find the file. 나는 약 30GB의 파일을 가지고 있으며 모두 그 문자를 포함합니다. 어떻게 다른 NTFS 파티션에 복사 할 수 있습니까?


처음에 그 파일들을 어떻게 만들었습니까?
데니스

급류에서 다운로드했습니다.
Pablo

여전히 급류가 있습니까? 그렇게하면 토렌트 클라이언트를 사용하고 스토리지를 이동하십시오. 이러한 부적절한 파일 이름을 처리 할 수 ​​있기 때문입니다.
데니스

안타깝게도 더 이상 등록 된 토런트가 없거나 Linux를 사용하여 해당 파일을 이동할 수도 없습니다 (우분투에서 Windows 7 파티션으로 옮겼습니다).
Pablo

1
리눅스 라이브 CD / USB로 드라이브를 마운트하는 것은 빠르고 깨끗한 솔루션이지만, 단지 윈도우에서 드라이브를 할 수있는 방법이 있는지 궁금합니다. 방금 파일을 만들어 보았습니다 | 내 Windows 컴퓨터의 Linux 컴퓨터에서 나와 소리를 지 릅니다. 넷북에서 실행중인 https 서버에서 다운로드해도 작동하지 않아 | 에-. 명령 프롬프트와 축약 형 이름으로 이동해보십시오. dir /x사용할 수있는 짧은 이름이 표시됩니다.
Rob

답변:


11

커맨드 라인은 당신의 친구입니다.

CMDCD파일 위치를 엽니 다 .

입력 dir /X이 당신에게로 이전 DOS 8.3 이름이 표시됩니다 ~1, ~2긴 파일 이름과 함께 등.

그런 다음 8.3 이름을 사용하여 복사 / 이름을 바꿀 수 있습니다

이름을 바꿀 때 8.3과 긴 파일 이름을 혼합 할 수 있습니다.

ren THISIS~1.TXT "this is renamed.txt" 작동합니다

여기에 이미지 설명을 입력하십시오


1
파일 이름이 8자를 넘으면이 아이디어를 좋아하십시오. 내가 생각한 첫 번째 Windows 솔루션입니다.
Rob

2
@Rob 파일 이름이 8 자 미만인 경우에도 불법 문자가있는 경우에 사용할 수있는 대안을 제공한다고 생각합니다. 테스트하기가 조금 어렵습니다!
Shevek

인용 된 파일 이름으로 동일한 작업을 수행 할 수 있는지 궁금합니다. 즉 ren "file | name"파일 이름
Matt H

1
@MattH Windows 파일 이름에는 여전히 잘못된 문자 라고 생각 하지 않습니다 . 파일 이름에 해당 문자로 파일을 작성하기가 어렵 기 때문에 테스트하기가 매우 어렵습니다!
Shevek February

4

\\?\접두사는 경로가 완벽하게 정상적으로입니다 윈도우를 알려줍니다 당신은 그것을 짓을 아무 것도하지 않을 것이다. 그것은 덜 용서한다는 것을 의미합니다. 예를 들어 dir "\\?\C:"작동하지 않습니다. 올바른 경로는 dir "\\?\C:\"입니다.

|NTFS 파일 이름 사용 제한을 무시하는 데 도움이 됩니다. 그러나 CMD.EXE가를 해석하지 않도록 파일 이름을 여전히 인용해야합니다 |.


1

파일 이름에 유효하지 않은 문자가 있으면 문제가 더 빨리 발생합니다. 추가 문제를 피하기 위해 모든 파일의 이름을 바꾸는 것이 좋습니다.

이것은 작동해야하지만 테스트되지 않았습니다.

  1. 우분투를 다운로드 하고 라이브 CD를 굽습니다.

  2. Live CD에서 부팅하십시오.

  3. 터미널을 열고 홀수 파일과 exexcute가 들어있는 폴더로 이동하십시오.

    find . | grep "|" | awk '{ OLD=$0; gsub(/\|/, "_"); print "mv \"" OLD "\" \"" $0 "\"" }' | sh
    

모든을 |s로 바꿔야합니다 _.


나는 awk보다 더 쉬운 방법이 있지만 그것이 효과가 있다는 것을 알고 있습니다. 내 리눅스 머신으로 ssh하고 여전히 내 bash 기록에 있는지 확인하십시오.
Rob

1
f in *; mv "$ f" "$ (echo $ f | tr '|' '_')"; 완료
Rob

1
@ 롭 : 그것은 이다 쉽게. 하위 디렉토리와 함께 작동하도록 소스를 변경하고 소스와 대상이 동일 할 때 오류 메시지를 인쇄하지 않도록 약간 변경했습니다.
Dennis

1
로 변경 for f in "$(find . | grep '|')";하거나 공백이있는 파일을 엉망으로 만듭니다.
Rob

1
창을 수정하려면 다른 운영 체제를 다운로드해야한다는 생각이 마음에 듭니다.
Matt H

0

나는 Dennis와 같은 것을 제안하려고했다. Windows 에서도 사용할 수 있는 많은 앱이 있지만 "잘못된"문자로 파일 이름을 바꾸는 방법을 잘 모르겠습니다.

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