我想要完成的是重命名我在文件夹中的所有.exe。
随机名称的样本应为" 589uday5xpsa9iz.exe"
我很感激我能得到的任何帮助,我一直在努力解决这个问题。
答案 0 :(得分:1)
试试这个:
@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
中的值
使用总CHAR图(+1)的值。
您可以通过更改变量中的值来增加random string
的长度:$Lcode
(16)在此示例中。
输出:
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. . .
如果可以删除ECHO
以重新命名文件。
答案 1 :(得分:0)
这是一个简单的批处理,可以在包含要重命名的文件的文件夹中工作,您可以创建一个从桌面使用它的快捷方式。使用复制和粘贴长名称。 C:\ Documents and Settings \ Owner \ Desktop \ New Folder \ Rename.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
希望这适合你。
答案 2 :(得分:0)
一种更简单的方法...尝试循环遍历该文件夹中所有文件的for循环,并一次重命名一个,给每个文件一个唯一的数字......
@echo off
for /L %%n in (1 1 %random%) do (
for %%a in (*.exe) do (
rename "%%a" "%%a_%%n.exe"
)
)
所以%%a
表示该文件夹中的所有文件,而%%n
表示将分配给使用_符号分隔的for body中每个文件的唯一编号
要使用此批处理文件,您必须将其放在包含.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"
)
)
希望这有助于.....