我想要完成的是重命名文件夹中所有的。exe。
随机名称样本应为" 589uday5xpsa9izz .exe"
如果我能得到任何帮助,我将不胜感激,我已经想了好几天了
试试这个:
@echo off
setlocal enabledelayedexpansion
:://The string length of the output
set $Lcode=16
set $#=#
:://The char Map
set $l="#0=0" "#1=a" "#2=B" "#3=c" "#4=d" "#5=E" "#6=f" "#7=g" "#8=H" "#9=I" "#10=j" "#11=K" "#11=1" "#13=2" "#14=3" "#15=4" "#16=5"
:://Evaluating the char MAP
for %%a in (%$l%) do set %%~a
:://Looping in the directory for .exe files
for /f "delims=" %%x in ('dir /b/a-d "*.exe"') do (
for /l %%a in (0,1,%$Lcode%) do (
call:rand
)
ECHO ren "%%x" !$Fstring!.exe
set $Fstring=
)
pause
exit/b
:://Getting the random Char
:rand
set /a $n=!random!%%17
set $Fstring=!$Fstring!!#%$n%!
我做了一个只有15个字符的char MAP,但你可以增加所有的字符(上下字母+数字)。如果你这么做。你必须增加!random!%%17
的值
可以通过改变变量$Lcode
(16)的值来增加random string
的长度。
输出:
ren CnpjSdee.exe 2aHg5I22EBBE2ff5.exe
ren DbatchCnpj.exe EIIg2E54aHHIEgfHE.exe
ren NTStreamColor.exe jg03f3dIfBfIfHj2.exe
ren savedialog.exe EgfdajIcdc2cf03E.exe
Press any key to continue. . .
如果OK,删除ECHO
以真正重命名文件
这是一个简单的批处理程序,它将在包含要重命名的文件的文件夹中工作,您可以创建一个快捷方式从桌面使用它。使用复制和粘贴长名称。C:Documents and SettingsOwnerDesktopNew FolderRename.bat (file = Rename.bat)不要使用整个路径
@echo off
title Rename Bat
echo This bat must be in the folder that
echo contains the files to be renamed.
:begin
echo Enter File Name
set /p old=
echo Enter New Name
set /p new=
ren "%old%" "%new%"
echo File Renamed
ping -n 3 127.0.0.1 >NUL
goto begin
一个更简单的方法…试试for循环,遍历文件夹中的所有文件,每次重命名一个文件,给每个文件一个唯一的编号…
@echo off
for /L %%n in (1 1 %random%) do (
for %%a in (*.exe) do (
rename "%%a" "%%a_%%n.exe"
)
)
那么%%a
代表该文件夹中的所有文件%%n
代表分配给for主体中每个文件的唯一编号以_符号
要使用这个批处理文件,你必须把它放在包含.exe
文件的文件夹中
将文件重命名为原始的name_1
,然后是原始的name _2
等等,如果你想让它完全随机,那么在第一个for循环的括号中只使用%random%
,并取消迭代"1"(见下文),在重命名部分也取消%%a
以省略文件的原始名称,这样你就只剩下随机数了,参见下面的
@echo off
for /L %%n in (%random%) do (
for %%a in (*.exe) do (
rename "%%a" "%%n.exe"
)
)
希望对您有所帮助.....