使用批处理随机重命名文件夹中的所有.exe文件

时间:2014-05-04 20:51:50

标签: file batch-file rename dos

我想要完成的是重命名我在文件夹中的所有.exe。

随机名称的样本应为" 589uday5xpsa9iz.exe"

我很感激我能得到的任何帮助,我一直在努力解决这个问题。

3 个答案:

答案 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"


    )


)
希望这有助于.....