2016-08-09 8 views
0

나는 모든 이름이 다른 5 ~ 20 개의 파일을 포함하는 폴더가 여러 개 있습니다. 그들은 매주 교체되므로 각 파일의 이름도 변경됩니다. 하지만 난 그들에게 SQL 로더를 사용하여 업로드 할 수 있도록 특정 이름을 가져야합니다.일괄 처리로 여러 폴더에서 여러 파일 이름 바꾸기

내가 지정한 모든 폴더로 이동하고 모든 파일을 선택하고 모든 이름을 변경하는 배치 파일을 만드는 방법이 있습니까? 퍼펙트 솔루션은 파일 번호 1, 파일 2, xml 등의 위와 같은 숫자 일뿐입니다.

메신저로 배치하는 전체 초보자부터 조금 뒤져서 코드를 찾았지만 특정 폴더의 파일 만 변경합니다. . 1

Dir *.xml | ForEach-Object -begin { $count=1 } 
-process { rename-item $_ -NewName "$count.xml"; $count++ } 

업데이트 난 내가 그들이 원하는대로 나 폴더에있는 파일의 이름을 변경 할 수 있습니다 작업 코드를 발견했다. 나는 코드를 필요로 할 것인데, 이것은 내가 동시에 여러 다른 폴더에 이것을 할 수있게하거나 자동적으로 하나씩 할 수 있도록한다.

@echo off & setlocal EnableDelayedExpansion 

set a=1 
for /f "delims=" %%i in ('dir /b *.xml') do (
ren "%%i" "!a!.xml" 
set /a a+=1 
) 
+0

어떤 언어/데이터베이스를 통해 (하위 폴더)입니까? –

+0

필자는 powershell이 ​​가장 가까운 해결책을 얻는 것이 가장 쉬울 것이라고 생각합니다. –

+0

내 생각에 정확한 툴과 다른 툴 옵션에 대해서도 알려주십시오. –

답변

0
@echo off & setlocal EnableDelayedExpansion 

set a=1 

rem make old name to prevent same name collision 
for /D %%i in (*) do (
    cd %%i 
    for /f "delims=" %%j in ('dir /b *.xml') do (
     ren "%%j" "%%j-old.xml" 
    ) 
    cd .. 
) 

rem rename process 
for /D %%i in (*) do (
    cd %%i 
    for /f "delims=" %%j in ('dir /b *.xml') do (
     ren "%%j" "!a!.xml" 
     set /a a+=1 
    ) 
    cd .. 
) 

echo Done 
pause 
Start . 

는 도움이되기를 바랍니다.

0

여기서 할 수있는 PowerShell을 코드는 여러 폴더에 대한 같은 당신이 달성하고자하는

$path = 'Z:\' 

Get-ChildItem -Path $path -Filter *.xml -Recurse | ForEach-Object -Begin { 
    [int]$count = '1' 
} -Process { 
    Rename-Item -Path $_.FullName -NewName "$count.xml" -ErrorAction Stop 
    $count++ 
} 
관련 문제