2012-11-19 4 views
2

이 작은 질문에 대해서는 여기 또는 인터넷에서 아무 것도 찾지 못했지만 그 방법을 모릅니다.dos/batch의 문자열을 파일 이름에 추가하십시오.

당신이 창문 아래에 있다고 가정/DOS 다음 파일을 여기서 filename.ext 당신은 사본을 같은 디렉토리에이 파일을 만들고 싶어

. 복사본의 이름은 다음과 같습니다. filename.AA.ext

배치 파일 (.bat)을 사용하여 어떻게 할 수 있습니까?

도움 주셔서 감사합니다.

부록 :

사본 (별) (별) (별) .AA :.이 같은 함께 모든 확장자를 가진 모든 파일을 위해 일한다면 실제로, 그게 내가 찾고 있어요 대상 결과입니다. (별표)

더 나아가, 나는 다른 확장자 (하나의 pdf와 1 exe라고 함)를 함께 사용하여 파일을 가져 와서 배치 파일에 드래그하여 같은 디렉토리에 " .AA "안에. 나는 이런 식으로 뭔가 시작하는 것

답변

1

:

여러 파일과 함께 작동 뭔가를
mkdir \tmpdir 
copy filename.ext \tmpdir 
mov \tmpdir\filename.ext filename.AA.ext 

...

복사 명령 이름을 바꿀 와일드 카드에 대해 동일한 규칙을 사용
mkdir \tmpdir 
copy *.ext \tmpdir 
mov \tmpdir\*.ext *.AA.ext 
+0

이렇게하면 tmpdir이 뒤 따르게되고 필요한 것보다 훨씬 복잡해집니다. – dbenham

+0

답장을 보내 주셔서 감사합니다. 한 파일에서는 잘 작동하지만 여러 파일에 대해서는 두 번째 버전이 작동하지 않습니다.분명히 마지막 줄은 받아 들여지지 않으므로 dos 프롬프트가 나타납니다. –

2

-How does the Windows RENAME command interpret wildcards?를 참조하십시오 .

일괄 처리 할 필요가 없습니다. 명령을 배치 파일에 넣을 수는 있지만 필수는 아닙니다.

copy filename.ext *.AA.ext 

는 배치 파일은 아래의 탐색기에서 그것으로 드래그 - 앤 - drop'ed했던 모든 파일을 통해 원하는 과정을 달성 여러 파일

copy *.ext *.AA.ext 
+0

빠른 답장을 보내 주셔서 감사합니다. 이 간단한 줄은 매우 강력하며 주어진 파일 형식에서 잘 작동합니다. 하나의 파일 유형 (예 : '.ext') 대신에 예를 들어, ".pdf"와 ".exe"(각각 ".AA.pdf"와 ".AA.exe"로 이름을 바꿉니다)? 귀하의 코드에 변형을 시도했지만 배수로 확장자는 dos cmd에 의해 허용되지 않습니다. –

+0

죄송합니다. 정상적으로 작동합니다. - /. 드래그 앤 드롭하면 ". 박쥐"파일에 PDF 및 EXE AA로 바꿀 수 있습니까? 이것은 dos cmd에 의해 허용되지 않습니다. 코드는 지금 (그러나 끌어서 놓기로는 작동하지 않습니다.) 사본 * .pdf * .AA.pdf 사본 * .exe * .AA.exe –

1

를 복사합니다.

@echo off 
:nextFile 
    if "%~1" equ "" goto exitLoop 
    copy "%~1" "%~DPN1.AA%~X1" 
    shift 
    goto nextFile 
:exitLoop 

안토니오

+0

대단히 감사합니다. 이것은 드래그 앤 드롭과 여러 파일을 서로 다른 확장자와 함께 사용하여 훌륭하게 작동합니다. 단 하나의 포인트가 있습니다 : AA 파일은 C : \ Documents and Settings \ % my path % 디렉토리에 복사되고 원본 파일과 동일한 디렉토리에는 복사되지 않습니다. 어떤 생각? –

+0

@ johnsmith : 파일 이름에 N 수정 자 앞에 D와 P 글자를 넣으십시오 :'copy "% ~ 1" "% ~ DPN1.AA % ~ X1"'. 나는 이미 위의 코드에서 그랬다. – Aacini

+0

@ johnsmith : 내 대답을 수락하고 Upvote 둘 다 물어 봐도 될까요? 감사합니다 ... – Aacini

1

이 해결!

나는 안토니오의 도움을 받아 내 자신의 질문에 대답한다. 코드에 경로를 추가하고, 완전한 안토니오의 코드를 다음과 같은 디렉토리에 복사 된 파일을 얻을 :

지금
@echo off 
:nextFile 
    set filepath=%~dp1 
    if "%~1" equ "" goto exitLoop 
    copy "%~1" "%filepath%%~N1.AA%~X1" 
    shift 
    goto nextFile 
:exitLoop 

당신이 각각 다른 파일 확장자를 갖는 & 드롭 여러 파일을 드래그 할 수 있으며이 될 것입니다 동일한 디렉토리에 복사됩니다.

친절한 도움을 주신 모든 분들께 감사드립니다.

+0

솔루션은 모든 파일을 _first_ 파일의 디렉토리에 복사합니다. 아래의 내 솔루션은 각 파일을 자체 디렉토리에 복사하므로 동일한 드래그 앤 드롭 작업으로 여러 폴더의 파일을 혼합 할 수 있습니다. – Aacini

+0

네가 원했던 것입니다 : 전체 작업은 지정된 디렉토리 내에서 이루어져야합니다. –

관련 문제