2014-02-10 5 views
5

Copy-Item cmdlet을 사용하여 엄청난 수의 png 및 txt 파일을 복사하고 있었고 슬프게도 재미있는 프로그래머가 연결 정보를 요약하기 위해 파일 이름으로 "CON"을 사용하기로 결정한 것을 발견했습니다."CON"을 파일 이름으로 사용

복사 품목 :

는 "사기꾼"는 예약어 및 Copy-Item 반환임을 감안할 때 경로를 처리 할 수 ​​없습니다가 'XXX \ con.txt'대상이 예약 된 장치 이름을 나타 내기 때문이다.

이 이름을 변경할 수 없습니다 그것은 내가 복사 할 필요가있는 모든 폴더에 사용되는 점을 감안 모든 "con.cfg"및 PowerShell을 사용하여 "con.txt"파일을 복사 할 수있는 방법이 있나요 ?

나는 봤지만 나는 "단점을 사용하지 마!"와 같은 조언 만 발견했습니다. 또는 "Powershell을 사용하여이 파일을 복사하지 마십시오."

+0

하하, 나는 당신의 문제를 재현하기 위해 'con.txt'라는 파일을 만들 수는 없지만 수퍼 유저의 [이 대답] (http://superuser.com/a/129260)이 도움이 될 것이라고 생각합니다. –

+0

리눅스 부팅 CD를 사용하여 파일을 복사하십시오. – Tschallacka

답변

2

내가 아직 PowerShell을위한 솔루션을 찾을 수 없어,하지만 당신은 파일의 이름을 변경 할 수 있어야한다 명령 프롬프트를 통해 다음과 같이 입력하십시오 :

ren \\.\<absolute path> <new name> 

ren \\.\C:\stuff\con.cfg stuff.cfg 

당신은 물론, PowerShell을 통해 명령 프롬프트를 호출 할 수 있습니다 : 예를 들어

그래서

cmd /c "ren \\.\C:\stuff\con.cfg stuff.cfg" 

을 그리고 분명히 당신은 당신이 원하는 경우에 거기에 PowerShell에서 변수를 사용할 수

$dir = "C:\stuff" 
cmd /c "ren \\.\$dir\con.cfg stuff.cfg" 
+0

'\\ servername \ c $ \ myPath'와 같은 원격 경로로 작업 할 수는 없지만 로컬로 작동합니다 ... 더 나은 것은 없습니다! – Naigel

1

와일드 카드를 사용하여 그들을 참조 할 수 있습니다 : *on?

예 :

ls | ? {$_.Name -match "*on.cfg"} | del 

정규식 예 :

ls | ? {$_.Name -match "^\won\.cfg"} | del 
+0

내 문제는 그 이름을 가진 파일을 만듭니다. – Naigel

관련 문제