2014-07-20 3 views
0

명령 줄을 통해 파일을 열 때 지정한 파일을 복제하는 배치 스크립트를 만들었습니다. 이것은 스크립트입니다배치 복제 스크립트

setlocal 
set file=%1 
for /f %%i in ("%file%") do (
set drv=%%~di 
set path=%%~pi 
set ext=%%~xi 
set name=%%~ni 
) 
copy "%1" "%drv%%path%%name% - Duplicate%ext%" 
pause 

그리고 이것은 내가 사용하는 명령입니다

D:\> "duplicate.bat" D:\test file.txt 
:

D:\> "duplicate.bat" D:\testfile.txt 

이 예는 완벽하게 작동하지만 예를 들어 파일 이름에 공백이있을 때

배치 파일의 파일 이름이 test이고 확장명이 비어 있습니다. 그 문제를 도와주는,하지만 대한 madhawa priyashantha 덕분에 지금은 실현 있도록

는 희망이 가능한 :


좋아하다 내가 실행할 때 팝업을 cmd 창을 숨길 수 wan't 경우 스크립트 this solution here을 사용할 수 있지만 이제는 스크립트가 공백이있는 파일에서 다시 작동하지 않습니다. 바라기를 이것은 내가해야 할 마지막 일입니다. :)

답변

0

인수를 랩핑해야하는 공백으로 구성된 인수를 전달하려는 경우이 인수를 전달하고 그렇지 않으면 공백 후 다음 부분을 고려하십시오. 다음 인수로

@echo off 
copy %1 "%~n1 - Duplicate%~x1" 
pause 

이제이

m.bat "D:\test file.txt" 

같은 공백없이 경우이 박쥐 파일을 호출 할 필요가

m.bat "D:\testfile.txt" 
0

보십시오. D :> "duplicate.bat" "D : \ test file.txt"