求个批处理 批量更改文件名

整理模型用:经常遇到下载的模型都以01 02 03 这种格式命名 导致把相同类型的模型整理后 放一同文件夹下 会产生同名 很是麻烦;希望能有一个批处理 能以下图方式随机命名并更改文件名 需要将图片与压缩文件名统一 且使其具有超高唯一性。避免重复 感谢~~~!!!!~~~

第1个回答  2018-01-21
@echo off
rem 设置源目录
set "ScDir=D:\test"

echo 处理中……
cd /d "%ScDir%"
for /f  "delims=" %%a in ('dir /a-d /s /b') do if exist %%a (
set "name=%%~na"
setlocal enableDelayedExpansion
if  "!name:~19,1!" equ "" (
pushd "%%~dpa"
call :ranName randomname
for /f  "delims=" %%b in ('dir /a-d /b ^|findstr "!name!"') do ren "%%b" "!randomname!%%~xb"
popd
)
endlocal
)
echo.
set/p=处理完成,按任意键退出&exit

:ranName   生成随机名字,由字母和数字组成
setlocal
set name=
set "strings=1234567890qwertyuiopasdfghjklzxcvbnm"
for /l %%a in (1,1,20) do (
set/a ran=!random!%%36
call set ch=%%strings:~!ran!,1%%
set name=!name!!ch!
)
endlocal&set %1=%name%&goto:eof

保存为bat

说明:对源目录下及其子目录下所有文件进行随机命名,具有相同文件名的不同类型文件,重命名后文件名保持一致。已重命令名的文件,再次运行时不会重复命名,所以添加新文件至源文件夹时,只会命名新文件。

追问

感谢 大神深夜为此写代码 ,刚运行了 发现了两个问题 请大神帮忙完善一下 :

    只需要源目录下 *.jpg文件和*.rar文件或文件夹名 随机命名 ,重新命名时 不能破坏原文件一 一对应的原则。

    此代码运行出来的名称 有些没有名字 ,而且是全部文件名进行了随机重命名(文件夹名称似乎没有改变)  图片无法对应找到相应的压缩包或文件夹 详见下图 

如何借助Excel生成批处理文件来批量修改无规则文件名?
批量修改文件名的简单方法:遇到文件名需要大改的问题时,一个简单实用的策略是通过批处理和ren命令来实现。首先,明确原文件名和新文件名的对应关系至关重要,可以借助Excel等工具创建对应表,如员工号与身份证号的映射。操作步骤如下:收集人员信息,创建Excel表格,A列保存原文件名,B列对应新文件名。...

如何批量重命名文件
- 将`NewFileName`替换为你想要命名的新名称。4. 保存并关闭批处理文件。5. 双击运行该批处理文件,它将在指定的文件夹中批量重命名文件。方法二:使用PowerShell脚本 1. 创建一个新的文本文件,将其后缀改为`.ps1`,例如`rename_files.ps1`。2. 打开该PowerShell脚本文件,并输入以下命令:```p...

如何批量修改文件扩展名
1. 使用Windows批处理命令 Windows用户可以直接创建一个批处理文件(.bat)来执行重命名操作。例如,假设我们要将当前目录下所有的.txt文件更改为.md文件,可以创建一个包含以下命令的.bat文件:batch echo off for %%i in (.txt) do (set "filename=%%~ni"set "extension=%%~xi"ren "%%i" "%f...

如何批量修改文件夹名称?谢谢!
在资源管理器中选中文件后,按下 F2 键,然后输入新的文件名,按下 Enter 键即可批量修改多个文件名。方法3:使用命令进行修改 打开电脑的命令窗口,然后打开需要批量修改为文件名的文件所在的文件夹,在命令窗口中输入文件夹的位置,例如:cd C:\\Users\\Username\\Desktop\\Files。然后使用ren命令,ren命令...

如何批量更改文件夹名称
1. **打开记事本或任何文本编辑器**:首先,你需要打开记事本(Notepad)或你选择的任何文本编辑器来编写BAT脚本。2. **编写BAT脚本**:在记事本中输入以下示例脚本,用于将指定目录下所有文件夹的名称前添加"Prefix_"前缀。请将`C:\\path\\to\\your\\folders`替换为你的目标文件夹路径。```batch ech...

怎么用bat批量重命名文件夹名?
1、右击电脑桌面的空白处,新建一个文本文档。2、新建完成后在空白的文本文档中输入代码@echo offstart cmd%0,输入完成后点击页面上的保存选项将该文件保存。3、将刚刚保存的TXT文件更改为.BAT后缀。4、双击该bat文件即可。

怎样在Excel中批量修改文件名
Excel2003ren命令结合批处理来批量修改文件名 1、 先启动电脑上的Excel,我跟大家举例演示,就随便创建了一个比较简单的表格,在C2单元格输入公式:="ren "A2".jpg "B2".jpg",这是一个字符链接公式,表示将A2单元格的内容重命名为B2单元格的内容,回车得到结果,...

求个批量重命名文件名的批处理代码!
echo !num!个 echo 示例:原文件名:[%%~xni] 新文件名: [!name!!num!.!bak!]echo %%~xni –^> !name!!num!.!bak! >>”log.txt”)) else goto :eof echo 整理完成 上善若水 PAUSE>nul 整个批处理的作用是可以将当前文件夹下面的所有文件(包括但不限于图片)进行重命名为自己设定的...

批量更改文件名、以及更改失败常见问题
批量更改文件名与常见问题解决方案 步骤一:直接复制文件地址 全选文件(或使用快捷键Ctrl+A)后,右击选择“复制文件地址”,即可获取全部文件的地址信息。步骤二:使用win批处理工具 新建文本文件,粘贴以下代码,保存为.bat文件并双击运行。代码如下:dir \/B > 文件名.xlsx 在执行此批处理后,将得到...

怎么批量修改文件夹的名称?
1、首先打开需要批量更改名称的文件,按键盘Ctrl+A全选所有文件 2、然后按F2键重命名,我们这组照片是命名为动漫,然后确定就全部按照顺序批量命名了。方法二:bat批量处理 批量更改文件夹 1、当前目录新建一个文本文档打开输入以下代码 set a=1 setlocal EnableDelayedExpansion FOR \/f "tokens=*" %%i ...

相似回答