특정 폴더를 선택하고 파일명 전체나 일부를 모두 변경하는 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!"
댓글