2023年11月25日发(作者:)
如何让文件显示后缀
首先打开“我的电脑”,依次点“工具”、“文件夹选项”、“查看”,将“隐藏已知文件类型的扩展
名”前面打勾,再确定即可。
有时候从网上down些文件下来,文件名都是一大串的字母和数字,不利于整理。所以我从网上找了一
段批处理的代码,做一个批处理的文件进行修改,非常的方便。
复制以下代码保存为文件,放在你要改名的文件夹里运行
会把这个文件夹里的所有后缀名为.rm的文件都以 b+序号 的形式命名.
@echo off&setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.rm') do (
if not "%%~ni"=="%~n0" (
if !a! LSS 10 (ren "%%i" "b0!a!.rm") else ren "%%i" "b!a!.rm"
set/a a+=1
)
)
注:蓝色的字母是文件的格式,可以修改,如果原来的是txt,则都改成txt。红色的字母是要改成的文件名
的前缀,可以改成英文或者中文的名字,然后后面会自动添加上序号。
不过此方法只能修改无序的文件,我试了一下,会将原先文件的次序打乱。真是遗憾!
=====================================================
相信有不少玩家遇到过想批量修改一个文件夹里面的同一类型或者多个类型的文件名吧,这里分享一个批
处理
将以下代码复制到记事本里,另存为****.bat
运行就OK啦
@echo off
for /f "delims=" %%i in (dir /a-d /b /s 1*.bmp) do (
ren "%%i" "%%~" )
pause
这一段代码是将文件夹内的所有BMP图片改为JPG的图片后缀
你们想怎么改,就照着修改就行了.
@echo off&setlocal enabledelayedexpansion
for /r %%a in (*.wma *.mp3) do (
if not defined %%~dpa set "var=%%~dpa"&set "%%~dpa=a"
for %%i in ("!var:~,-1!") do echo ren "%%a" "%%~ni_%%~nxa"
)
pause
以上两个代码都必须放在歌手名文件夹所在的文件夹下使用,只有这样使用,才能保证获取到且只获取
到你想要的音乐文件的完整路径名,并且,为后面的for语句正确地解析这些路径字符串提供保证。
随风的思路是:用 dir /a-d /b /s 来获取完整路径名,放到for语句中来解析完整路径字符串,用 %%~dpa.
来获取音乐文件所处的文件夹完整路径(这里使用了一个小技巧:在字符串最后添加一个点号,从而使得
for语句的%%~ni把文件夹名当做文件名来处理),再用 %%~ni 获取文件夹名,也就是歌手名,把这个歌
手名用下划线连接到原来的文件名前面,用ren来实现改名——%%~nxi 获取原文件完整的文件名和后缀
名。
pusofalse的思路与随风大致相同,只不过在获取音乐完整路径的时候,换用了效率更高的 for /r 语句,
并用一个变量var来获取音乐文件所在文件夹的完整路径,通过判断var是否经过赋值来判断当前处理的音
乐文件是否位于同一目录下,因为直接用 %%~dpa 获取到的字符串最后有一个反斜杠,所以,第二个for
语句中,用 !var:~,-1! 把最后的反斜杠去掉了(在for语句内部,如果要引用已经发生了改变的变量,必须
使用变量延迟功能,也就是最开始的 setlocal 语句),后面的思路和随风的一样。其实,pusofalse的代码
大可不必判断当前处理的文件与上一次处理的文件是否位于同一目录下,因为 for /r 的时候,会获得文件
的完整路径,只需要对完整路径直接进行操作就可以了,可以借鉴随风的做法,在 %%~dpa 的时候,直
接在最后加上一个点号,可以使得效率进一步提升。
说实话,解释代码是比较累人的,很多人宁肯写上百行代码,也不想解释其中的意思,因为往往是解
释内容比代码内容还多,并且也不见得别人能领会你的意思,要想看懂别人的代码,还是需要有一点基础
了才好办,楼主不仅仅想知其然,还想知其所以然,这样的想法是非常值得提倡的,不过,还是需要先潜
水一段时间,多翻翻论坛老帖,特别是教学区的帖子,才会有所收获
Name批量文件重命名 ----- VB
Name, 批量, 文件
'所需控件当然还是文件系统3剑客,command2个,text1个
'窗体代码
Option Explicit
Private Sub Form_Load() '选择默认路径
= & "ml"
=
n = "*.jpg"
=
End Sub
Private Sub Combo1_Change()
n = "*" & "." &
End Sub
Private Sub Combo1_Click()
n = "*" & "." &
End Sub
Dim DestinationFile$, SourceFile$, i&
If unt > 0 Then
On Error GoTo x
For i = 0 To unt - 1
dex = i
SourceFile$ = & "" & me
DestinationFile$ = & "" & & i + 1 & "."
&
Name SourceFile$ As DestinationFile$ '重命名文件
Next i
h
End If
Exit Sub
x:
MsgBox ption
End Sub
Private Sub Command2_Click()
Unload Me
'所需控件当然还是文件系统3剑客,command2个,text1个
'窗体代码
Option Explicit
'lpExistingFileName - String,欲移动的文件名
'lpNewFileName -- String,新文件名
'dwFlags -------- Long,一个或多个下述常数
'MOVEFILE_REPLACE_EXISTING
'如目标文件存在,则将其替换
'MOVEFILE_COPY_ALLOWED
'如移动到一个不同的卷,则复制文件并删除原来的文件
'MOVEFILE_DELAY_UNTIL_REBOOT
'移动操作在系统下次重新启动时正式进行?这样便可在Windows NT中改换系统文件
Private Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal
lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As
Long
Private Const MOVEFILE_REPLACE_EXISTING = &H1
Private Sub Form_Load() '选择默认路径
= & "ml"
=
n = "*.jpg"
=
End Sub
Private Sub Combo1_Change()
n = "*" & "." &
End Sub
Private Sub Combo1_Click()
n = "*" & "." &
End Sub
Private Sub Drive1_Change() '选择驱动器
=
End Sub
Private Sub Dir1_Change() '选择文件夹
n = "*" & "." &
=
=
End Sub
Private Sub File1_Click()
= & "" & me
Exit Sub
x:
发布评论