특정 폴더를 선택하고 파일명 전체나 일부를 모두 변경하는 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!"
'TechNical > WMI' 카테고리의 다른 글
HTA] 특정 문자를 찾아서 배열에서 차례대로 매칭 시키기 (0) | 2010.06.11 |
---|---|
WMI] 엑셀파일 가지고 장난치기 (0) | 2009.08.14 |
WMI] 다이얼로그 박스를 띄워서 폴더 경로 선택하기 (0) | 2008.03.12 |
WMI를 이용해서 이메일 날리기 (0) | 2008.03.12 |
WMI를 이용해서 빈 폴더 찾아 내기 (0) | 2008.02.27 |
댓글