2008-10-10 3 views
1

디렉토리에있는 모든 파일을 이름을 바꾸려면 이 파일 enc1.ctl 이름을 변경 내가 원하는윈도우 스크립팅 내가</strong> FOR 명령 <strong>사용하여 Windows 디렉토리에 존재하는 모든 파일의 이름을 변경하려고

그게 testenc2.ctl 을하지 enc2.ctl testenc1.ctl합니다. test2.ctl 내가 그렇게 어떻게

로 이름이 변경 test1.ctlenc2.ctl로 이름이 변경 enc1.ctl은 내가 원하는 무엇입니까?


@Akelunuk : 감사합니다, 작품의 w 종류하지만 난

TEST1에 이름을 바꿀

h263_enc_random_pixels_1.ctl, h263_enc_random_pixels_2.ctl 같은 파일 이름이 있는지 확인하십시오. ctl 및 test2.ctl 각각

어떻게? 당신이 파일의 수 (10 말)을 알고 있다면

답변

1

, 당신은 나는 그것을

for /L %1 in (1,1,10) do ren enc%1.ctl test%1.ctl 
2

사용할 수 있습니다! 다음

for %1 in (.) do ren %1 t%1 

과 :

ren tenc*.* test*.* 
1

나는 - P

CMD의 ISN하면 ... 그것은 일괄 적으로 가능하지만 다시 나는이 원시 언어를 마스터하지 않을 경우 확실하지 않다 물론

var path= "E:/tmp"; 

var fso = WScript.CreateObject("Scripting.FileSystemObject"); 
var folder = fso.GetFolder(path); 
var files = new Enumerator(folder.files); 
for (; !files.atEnd(); files.moveNext()) 
{ 
    var file = files.item(); 
    var fileName = file.Name; 
    var p = /^enc(\d+)\.ctl$/.exec(fileName); 
    if (p != null) 
    { 
    var newFileName = "test" + p[1] + ".ctl"; 
    // Optional feedback 
    WScript.echo(fileName + " -----> " + newFileName); 
    file.Move(newFileName); 
    } 
} 

가하는 file.j에 있음을 넣어 't 필수,하지만 당신이 좋은 파일 이름 바꾸기를 사용할 수 없습니다, 당신은 WSH에 있다고 할 수있다 s
실제로 파일을 잃어 버리지 않도록 file.Copy(file.ParentFolder + "/SO/" + newFileName);으로 테스트했습니다 ...

HTH.

0

이것은 PREFIX 오늘의 날짜와 시간 필터 파일 형식의 파일 디렉토리에있는 모든 파일의 이름을 변경

@echo ON 
cls 
for %%a in (*.pdf) do (set myfiledate=%%~ta echo !myfiledate!) 

echo Date format = %myfiledate% 
echo dd = %myfiledate:~0,2% 
echo mm = %myfiledate:~3,2% 
echo yyyy = %myfiledate:~6,4% 
echo. 
echo Time format = %myfiledate% 
echo hh = %myfiledate:~11,2% 
echo mm = %myfiledate:~14,2% 
echo AM = %myfiledate:~17,2% 
echo. 
echo Timestamp = %myfiledate:~0,2%_%myfiledate:~3,2%_%myfiledate:~6,4%-%myfiledate:~11,2%_%myfiledate:~14,2%_%myfiledate:~17,2% 
ECHO "TEST..." > "test-%myfiledate:~0,2%_%myfiledate:~3,2%_%myfiledate:~6,4%-TIME-%myfiledate:~11,2%_%myfiledate:~14,2%_%myfiledate:~17,2%.txt" 
PAUSE 

successfuly 날짜가 수정 시간 후위로하지만, 이름 바꾸기에 정보를 분석 나던이 에코. 왜 그런지 알 수는 없지만 아주 가깝습니다. 어쩌면 누군가가 당신의 목적에 맞게 조정할 수 없습니다.

@echo ON 
setlocal 
cls 
for %%a in (*.pdf) do (set myfiledate=%%~ta echo !myfiledate!) 

:DATETIME 
echo Date format = %myfiledate% 
echo dd = %myfiledate:~0,2% 
echo mm = %myfiledate:~3,2% 
echo yyyy = %myfiledate:~6,4% 

echo Time format = %myfiledate% 
echo hh = %myfiledate:~11,2% 
echo mm = %myfiledate:~14,2% 
echo AM = %myfiledate:~17,2% 
= %myfiledate:~17,2% 
echo. 

echo Timestamp = %myfiledate:~0,2%_%myfiledate:~3,2%_%myfiledate:~6,4%-%myfiledate:~11,2%_%myfiledate:~14,2%_%myfiledate:~17,2% 
ECHO "TEST..." > "test-%myfiledate:~0,2%_%myfiledate:~3,2%_%myfiledate:~6,4%-TIME-%myfiledate:~11,2%_%myfiledate:~14,2%_%myfiledate:~17,2%.txt" 

for /f "delims=" %%a in ('dir *.pdf /t:a /a:-d /b /s') do call :RENAME "%%a" 

:RENAME 
REM for /f "tokens=1-6 delims=/ " %%a in ('dir %%a /t:w^|find "/"') do (
ren %%a "3DC-test-OFF-ELE-%myfiledate:~0,2%_%myfiledate:~3,2%_%myfiledate:~6,4%-TIME-%myfiledate:~11,2%_%myfiledate:~14,2%_%myfiledate:~17,2%~x1") 
PAUSE 
GOTO :EOF