我有一些图片文件 HSD003.JPG MIC6619.JPG MIC6618.JPG.........想先按系统排列后 再改名 比如 文件夹内有400个图片文件 先按系统从小到大排列后 开始替换名 如文件夹内有这三个文件排列后如下: MIC6601.JPG MIC6602.JPG MIC6603.JPG 我想改名后是 1.jpg 2.jpg 3.jpg
最好新名用个text1.text 来输入 如我输入A 那么就从A1.A2.A3....这样改名 如果text 不输入则为 1.2.3...谁帮帮我这个菜鸟..
最好新名用个text1.text 来输入 如我输入A 那么就从A1.A2.A3....这样改名 如果text 不输入则为 1.2.3...谁帮帮我这个菜鸟..
解决方案 »
- 请教ACCESS与CHECKBOX的问题
- 怎樣從vb中傳一值到excel中的文本框?????????????急請幫忙!!謝謝!!
- 用VB做图片切换效果----------------------------急,在线等!!!
- 部分电脑无法连接sql server2000,焦急等待解决中!
- 循环下标越界问题
- 从数据库里取出文件,结果打开是内容是空白的,请大家帮帮忙,在线等待!!!
- 有一string="vbBlue",怎样把他赋给form1.backcolor
- 谁可以把以下的代码改成vb代码,高分相送!
- 请问自考专科能找到(程序员)工作么?
- 请问SQL SERVER7.0表的字段是否支持中文?
- 判断某点在四个点包含的坐标点内,只能用if语句吗。
- 将窗体(窗体高度很大,有不可见区域)转换为位图
用个bat文件就搞定了.
http://www.skycn.com/soft/22778.html
2.打开acdsee,通过左边的文件树找到你放图片的文件夹,打开文件夹,选中你想重命名的所有图片,点右键中的批量重命名就可以啦!
3.批处理:
for /f "delims=" %%i in ('dir /b *.jpg') do (
set a=%%i
set b=!a:-=!
ren "%%i" !b!.jpg
)
pause
以上代码存储为bat文件,执行即OK!
Private Sub Command1_Click()
If Text1 <> "" Then '如果Text不为空,就执行下面语句块
Name Dir1.Path & "\" & File1.FileName As Dir1.Path & "\" & Text1 '重命名
File1.Refresh '更新文件列表框
End If
End SubPrivate Sub Dir1_Change()
File1.Path = Dir1.Path
End SubPrivate Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End SubPrivate Sub File1_Click()
Label1.Caption = "将" & File1.FileName & "改名为:"
End Sub
我以前做了一个批处理来删除所有的反辍名为log的文件,就用了下面这一名就简单搞定
del *.log
Name语句 返回 重新命名一个文件、目录、或文件夹。语法Name oldpathname As newpathnameName 语句的语法具有以下几个部分:部分 描述
oldpathname 必要参数。字符串表达式,指定已存在的文件名和位置,可以包含目录或文件夹、以及驱动器。
newpathname 必要参数。字符串表达式,指定新的文件名和位置,可以包含目录或文件夹、以及驱动器。而由 newpathname 所指定的文件名不能存在。
说明 Name 语句重新命名文件并将其移动到一个不同的目录或文件夹中。如有必要,Name 可跨驱动器移动文件。 但当 newpathname 和 oldpathname 都在相同的驱动器中时,只能重新命名已经存在的目录或文件夹。 Name 不能创建新文件、目录或文件夹。在一个已打开的文件上使用 Name,将会产生错误。必须在改变名称之前,先关闭打开的文件。Name 参数不能包括多字符 (*) 和单字符 (?) 的通配符。
Private Sub command1_Click() '开始
Dim FileName() As String, i As Long
getfilesname (TextPath), FileName()
For i = 0 To UBound(FileName)
ReDim oldname(UBound(FileName)) As String
ReDim newname(UBound(FileName)) As String
Dim k As Integer
oldname = FileName
newname(i) = TextPath & text1.Text & i & ".jpg"
On Error Resume Next
Name oldname(i) As newname(i)
Next iEnd Sub'用这个函数来得到文件夹下的文件名Function getfilesname(ByVal Path As String, ByRef FileName() As String) As Boolean
Dim fName As String, i As Long
If Right$(Path, 1) <> "\" Then Path = Path & "\"
fName = Dir$(Path & "*.*")
i = 0
Do While fName <> ""
ReDim Preserve FileName(i) As String
FileName(i) = Path & fName
fName = Dir$
i = i + 1
Loop
If i <> 0 Then
ReDim Preserve FileName(i - 1) As String
getfilesname = True
Else
getfilesname = False
End If
End Function
Private Sub Command1_Click()
Dim i As Long
mypath = "C:\" ' 指定路径。
myname = Dir(mypath & "*.jpg", vbDirectory) ' 找寻第一项。
Do While myname <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If myname <> "." And myname <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
Name mypath & myname As mypath & Text1.Text & CStr(i) & ".jpg"
i = i + 1
End If
myname = Dir ' 查找下一个。
LoopEnd Sub
替换后为 DC1.JPG DC2.JPG
谢谢?
Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Public Enum DirFlags
BIF_BROWSEFORCOMPUTER = &H1000&
BIF_BROWSEFORPRINTER = &H2000&
BIF_BROWSEINCLUDEFILES = &H4000&
BIF_DONTGOBELOWDOMAIN = &H2&
BIF_EDITBOX = &H10&
BIF_RETURNFSANCESTORS = &H8&
BIF_RETURNONLYFSDIRS = &H1&
BIF_STATUSTEXT = &H4&
BIF_VALIDATE = &H20&
End Enum
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pIdl As Long, ByVal pszPath As String) As LongPublic Function ShowDirBox(ByVal hwnd As Long, Optional ByVal Title As String, Optional DirName As String, Optional ByVal flags As DirFlags) As String '选择框文件夹路径函数
Dim FileDis As BROWSEINFO, FilePath As String, IntLen As Integer
With FileDis
.hOwner = hwnd
.lpszTitle = Title
.ulFlags = flags
.pszDisplayName = String(260, 0)
End With
FilePath = String(260, 0)
SHGetPathFromIDList SHBrowseForFolder(FileDis), FilePath
IntLen = InStr(FilePath, vbNullChar)
If IntLen = 0 Then Exit Function
ShowDirBox = Left$(FilePath, IntLen - 1)
IntLen = InStr(FileDis.pszDisplayName, vbNullChar)
If IntLen = 0 Then Exit Function
DirName = Left$(FileDis.pszDisplayName, IntLen - 1)
'MsgBox ShowDirBox(Me.hWnd, , , BIF_EDITBOX) '此句可得对话框
End FunctionPrivate Sub Check1_Click()
If Check1.Value = 1 Then Check2.Value = 0: Text4.Enabled = True: Text5.Enabled = True
End SubPrivate Sub Check2_Click()
If Check2.Value = 1 Then Check1.Value = 0: Text6.Enabled = True
End SubPrivate Sub Form_Load()
Text4.Enabled = False: Text5.Enabled = False: Text6.Enabled = False
End SubPrivate Sub jcbutton1_Click() '选择文件夹目录
Dim arr() As String, arr1() As String, i As Long
Dim item As Object, fso As Object, t As Object
Dim sName As String
On Error GoTo ToExit
Text1.Text = ShowDirBox(Me.hwnd, , , BIF_EDITBOX)
Set fso = CreateObject("scripting.filesystemobject")
Set t = fso.getfolder(Text1.Text)
For Each item In t.Files
sName = sName & item.Name & vbCrLf
Next
Text2.Text = sName
ToExit:
Resume Next
End Sub
Private Sub jcbutton2_Click()
Dim arr() As String, arr1() As String, arrName() As String, i As Long, s As Long
Dim item As Object, fso As Object, t As Object
Dim sName As String, Post As String
Dim uReplace As String, xReplace As String, Result As StringOn Error GoTo ToExit
If Text1.Text <> "" Then
If Check1.Value <> 0 Or Check2.Value <> 0 Then
uReplace = Text4.Text: xReplace = Text5.Text
Set fso = CreateObject("scripting.filesystemobject")
Set t = fso.getfolder(Text1.Text) '你的文件夹
For Each item In t.Files
sName = sName & item.Name & vbCrLf '获得所有文件名
Next
If Check2.Value = 1 And Check1.Value = 0 Then
arr = Split(Trim(sName), vbCrLf)
For i = 0 To UBound(arr) - 1
Post = Right(arr(i), 4) '获得文件后缀
Name Text1.Text & "\" & arr(i) As Text1.Text & "\" & Val(Text6.Text) + i & Post
Text3.Text = Text3.Text & Val(Text6.Text) + i & Post & vbCrLf
Next i
Else
If Check1.Value = 1 And Check2.Value = 0 Then
arr = Split(Trim(sName), vbCrLf)
For s = 0 To UBound(arr) - 1
Result = Result & Mid(arr(s), 1, Len(arr(s)) - 4) & vbCrLf
Next s
Result = Replace(Result, uReplace, xReplace)
arr1 = Split(Trim(Result), vbCrLf)
For i = 0 To UBound(arr) - 1
Post = Right(arr(i), 4) '获得文件后缀
Name Text1.Text & "\" & arr(i) As Text1.Text & "\" & arr1(i) & Post
Text3.Text = Text3.Text & arr1(i) & Post & vbCrLf
Next i
End If
End If
Else
MsgBox "请选择类型", , "提示"
End If
Else
MsgBox "请选择文件夹", , "提示"
End If
ToExit:
Resume Next
End Sub
Private Sub Command1_Click()
If Text1 <> "" Then '如果Text不为空,就执行下面语句块
Name Dir1.Path & "\" & File1.FileName As Dir1.Path & "\" & Text1 '重命名
File1.Refresh '更新文件列表框
End If
End SubPrivate Sub Dir1_Change()
File1.Path = Dir1.Path
End SubPrivate Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End SubPrivate Sub File1_Click()
Label1.Caption = "将" & File1.FileName & "改名为:"
End Sub
Dim rExp
Set rExp = CreateObject("VBScript.RegExp")
rExp.Pattern = "\d+"
rExp.Global = True
Dim Num As Object, Nums As Object
Set Nums = rExp.Execute(s)
For Each Num In Nums
GetStrval = GetStrval & Num.Value
Next
End
End FunctionPrivate Sub Command1_Click()
Dim i As Long
mypath = "C:\" ' 指定路径。
myname = Dir(mypath & "*.jpg", vbDirectory) ' 找寻第一项。
Do While myname <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If myname <> "." And myname <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
Name mypath & myname As mypath & Text1.Text & GetStrval(myname) & ".jpg"
i = i + 1
End If
myname = Dir ' 查找下一个。
LoopEnd Sub