본문 바로가기
TechNical/WMI

폴더내 파일명 일부 몽땅 변경

by 강멍멍이 2008. 4. 1.
반응형

특정 폴더를 선택하고 파일명 전체나 일부를 모두 변경하는 WMI 스크립트입니다.
이렇게 해야 할 경우도 있더군요.
뭐.. 어쨌거나... 대소문자 구분이 좀 이상하네요..-_-
될 때도 있고 안될 때도 있고....
사실.. 파일내에 문자까지도 치환했는데.. 이상하게.. 중복되어서 되는 그지 같은 현상이 발생되서 뺐습니다.
한... 80% 부족한 것 같은 느낌이... -_ㅠ


[File_name_change.vbs]

'폴더 선택
Const MY_COMPUTER = &H11&
Const WINDOW_HANDLE = 0
Const OPTIONS = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(MY_COMPUTER)
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Select a folder:", OPTIONS, strPath)
     
If objFolder Is Nothing Then
    Wscript.Quit
End If

Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path

file_path = objPath

target_file_name = InputBox("변경할 문자를 입력하세요." & vbCrLF & _
                            "(중간문자 허용)" & vbCrLF & _
                            " ex. Abcd.txt -> aBcd.txt" & vbCrLF & _
                            " 변경할 문자 : Ab" & vbCrLF & _
                            " 변경될 문자 : aB")
change_file_name = InputBox("변경될 문자를 입력하세요.")

' File 이름변경
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colFiles = objWMIService.ExecQuery _
    ("ASSOCIATORS OF {Win32_Directory.Name='" & file_path & "'} Where " _
        & "ResultClass = CIM_DataFile")

For Each objFile In colFiles
    strOldName = objFile.FileName
    strNewName = replace(strOldName,target_file_name,change_file_name)
    strCHName = objFile.Drive & objFile.Path & strNewName & "." & objFile.Extension   
    errResult = objFile.Rename(strCHName)   
Next

Wscript.Echo "Done!"


 

반응형

댓글