2014-11-08 2 views
0

프로그래밍 지식 없이도 신참입니다. 내 작업은 해결할 수 없습니다. 폴더에 많은 그림이 있으며 이름을 바꿔야합니다. 나는 오래된 파일 이름과 새로운 파일 이름을 가진 엑셀 시트를 가지고있다. 이전 및 새 파일 이름에는 단서가 없습니다. PowerShell 스크립트로 어떻게 할 수 있습니까? 미리 감사드립니다.배치 파일 이미지 이름 바꾸기

+0

지금까지 시도한 적이 있습니까? 그래서 주로 특정 코딩 문제에 관한 질문에 초점을 맞 춥니 다 – Bowdzone

답변

0

지금까지와 마찬가지로 일부 대표적인 샘플 데이터가 유용 할 것입니다.

여기에 기본 배치 파일 (표준 배치하지 전원 무엇이든)의 notepad 또는 실제 텍스트 편집기를 사용하여

@echo off 
setlocal 
pushd "?:\directory\where\your\pictures\are\stored 
for /f "usebackqtokens=1,2delims=," %%a in ("?:\some\directoryname\file.csv") do ECHO(ren "%%~a" "%%~b" 
popd 

복사 - 붙여 넣기 -하지 WORD - 파일에 당신을 박쥐 whateveryoulike전화를 ren 또는 rename을 좋아할 수 없습니다 (예약어 임).

라는 파일을 만듭니다 ': \ 몇몇 \ 수 directoryname \ file.csv'excel (CSV 형식으로 내보내기)에서 분리가 단순히 프롬프트에서 whateveryoulike을 입력하여 배치 파일을 실행으로 쉼표를 사용하여.

내가 게시 한대로 ren 파일의 이름을 에서으로 변경하는 명령이 콘솔에 전송됩니다. 이러한 올바른 표시, 여기에 PUSHD 명령은 대상 디렉토리로 변경됩니다

주 (뭔가 어긋의 경우 손상을 방지하기 위해 안전 조치를)보고보다는 이름을 renECHO(ren을 변경합니다. 이 행을 생략 할 수 있으며 그 결과는 popd이고 결과 배치는 "현재 디렉토리"에서 실행됩니다.

이 모든 데이터가 양식

oldname.jpg newname.jpg 

입니다하지만 당신은 우리가를 표시하지 않았다고 가정합니다. 그렇지 않으면이 계획에 조정이 필요합니다.

+0

빠른 답변 주셔서 감사합니다! 내가 설명했듯이 최선을 다했으나 그 결과는 다음과 같은 오류 메시지입니다. 내가 더 나아갈 수있게 도와 주실 래요? 고맙습니다! PS H : \ képek \ teszt> @echo off setlocal pushd "? : \ képek \ teszt /f"usebackqtokens = 1,2delims =, "%% a in ("? \ képek \ teszt \ nevek.csv ") do ECHO (ren"%% ~ a ""%% ~ b " popch 스프 래팅 연산자 '@'는 표현식에서 변수를 참조하는 데 사용할 수 없습니다.'@ec ho'는 명령의 인수로만 사용할 수 있습니다. 익스프레션에서 변수를 참조하려면 '$ echo'를 사용하십시오. 줄 번호 : 1 문자 : 1 –

+0

시작 문자열 : 줄 : 4 문자 : 96 + for/f "usebackqtokens = 1,2delims =" "%% a in ("? \ képek \ teszt \ nevek.csv ") ECHO (ren"% % ~ ""%% ~ b <<<< " 에 터미네이터가 없습니다." 행 : 5 char : 5 –

+0

이것은 일괄 처리 프로그램입니다. 명령 프롬프트에서 실행합니다 .Where powershell과 관련 없음. – Magoo

0

Powershell로이를 수행하십시오. * 당신이이 줄을 입력 할 수 있고 할 수 PowerShell은 프롬프트에서

그런 다음 헤더 행에 넣어하는 것이 중요합니다

OldFile,NewFile 
sample1.jpg,newname1.jpg 
sample2.jpg,newname2.jpg 
sample3.jpg,newname3.jpg 

: 당신은 먼저 CSV 파일 같은 포맷 된 확인합니다 :

$filesToRename = Import-CSV C:\sample\rename.csv 
foreach ($file In $filesToRename) {Rename-Item $file.OldFile $file.NewFile} 

* (그들은 단지 파일 이름있는 경우) CSV 파일의 파일 이름은 전체 파일 경로를 포함하지 않는 경우 다음 파일이있는 곳으로 작업 디렉토리를 변경할 수 있는지 확인하십시오.

+0

감사합니다! 문제는 이미 팔렸지만이 방법은 나에게 매우 유용하다. 왜냐하면 나는이 파워 쉘을 조금만 돌보기로 결정했기 때문이다. 내가 배워야 할 곳이 어디 있니? –

+0

Hey Scripting Guy를 검색하고이 블로그를 읽는 것이 좋습니다. Microsoft Scripting Guys가 작성했습니다. cmdlet을 가지고 놀고, 테스트하고, 작동하는 방법을 배우고, Get-Help를 사용하는 것을 잊지 마십시오. 행복한 스크립트. –