File 如何将文件夹中的所有文件重命名为用户输入加计数?

File 如何将文件夹中的所有文件重命名为用户输入加计数?,file,batch-file,rename,File,Batch File,Rename,我想重命名执行批处理文件的文件夹中的所有文件名 文件应要求用户提供名称和扩展名,并创建以下内容: 对于exmaple: 姓名:马 扩展名:exe 输出: horse1.exe horse2.exe horse3.exe @ECHO OFF SET /P uname=Please enter your name: IF "%filename%"=="" GOTO Error SET /P extension=Extension: IF "%extension%"=="" GOTO Error

我想重命名执行批处理文件的文件夹中的所有文件名

文件应要求用户提供名称和扩展名,并创建以下内容:

对于exmaple:

姓名:马

扩展名:exe

输出:

horse1.exe
horse2.exe
horse3.exe

@ECHO OFF
SET /P uname=Please enter your name: 
IF "%filename%"=="" GOTO Error
SET /P extension=Extension: 
IF "%extension%"=="" GOTO Error
SET COUNT=1
FOR /R %F in (*.*) do (
ren %~nF %filename%.%extension%Count+1
)
GOTO End
:Error
ECHO No input.
:End
PAUSE
编辑:回复评论

我在ren命令之前添加了ECHO单词,以便查看执行的命令并在我的计算机中运行批处理文件。结果是:

C:\> dir /B
frame.txt
prueba.txt
prueba0.bat
prueba1.bat
test.bat

C:\> ..\test
Please enter your name: horse
Extension: exe
ren "frame.txt" horse1.exe
ren "prueba.txt" horse2.exe
ren "prueba0.bat" horse3.exe
ren "prueba1.bat" horse4.exe
ren "test.bat" horse5.exe
Presione una tecla para continuar . . .

您可以删除第一个@echo离线,运行程序并复制粘贴错误前几行之外显示的错误…

好吧,我试着按照您刚才所说的做,我在控制台中得到了完全相同的输出,但它仍然没有实际重命名文件。在控制台中,它会打印出来,就好像它已经更改了它一样,但实际文件根本没有更改..请注意,ECHO ren%%F。。。仅显示命令,并且必须使用ren%%F。。。为了执行命令!我仍然不明白为什么回声。。。版本显示正确的命令,但没有回显,显示错误的语法。。。尝试插入两行:有回显部分和没有回显部分。我修改了批处理文件来做这个…好吧,我知道为什么了。它说的语法错误,因为我的文件名中有空格,当它得到几个参数时,它当然不理解语法,而它只需要两个参数。解决方案就是把%filename%放在左右!计数!%扩展%1为什么是-1?请解释一下。
@ECHO OFF
setlocal EnableDelayedExpansion

SET /P filename=Please enter your name: 
IF "%filename%"=="" GOTO Error
SET /P extension=Extension: 
IF "%extension%"=="" GOTO Error
SET COUNT=1
FOR /F "delims=" %%F in ('dir /B /A-D *.*') do (
   ECHO Executing: ren "%%F" %filename%!Count!.%extension%
   ren "%%F" %filename%!Count!.%extension%
   set /A Count+=1
)
GOTO End
:Error
ECHO No input.
:End
PAUSE
C:\> dir /B
frame.txt
prueba.txt
prueba0.bat
prueba1.bat
test.bat

C:\> ..\test
Please enter your name: horse
Extension: exe
ren "frame.txt" horse1.exe
ren "prueba.txt" horse2.exe
ren "prueba0.bat" horse3.exe
ren "prueba1.bat" horse4.exe
ren "test.bat" horse5.exe
Presione una tecla para continuar . . .