Batch file 该文件已使用批处理文件重命名,但它已赢得';停不下来

Batch file 该文件已使用批处理文件重命名,但它已赢得';停不下来,batch-file,file-rename,Batch File,File Rename,我需要通过在文件名前添加“BV”来重命名文件夹中的所有文件。我的代码正在运行,但当该文件夹中的文件总量超过约200个文件时,就会出现问题。它会将所有文件重命名为:“BV_BV_BV…”并且不会停止 这是我的密码: @echo off & setlocal ECHO Moechten Sie das wirklich tun? (Bereits vorhandene Bildverzeichnisse werden geloescht ECHO und in den Dateiname

我需要通过在文件名前添加“BV”来重命名文件夹中的所有文件。我的代码正在运行,但当该文件夹中的文件总量超过约200个文件时,就会出现问题。它会将所有文件重命名为:“BV_BV_BV…”并且不会停止

这是我的密码:

@echo off & setlocal

ECHO Moechten Sie das wirklich tun? (Bereits vorhandene Bildverzeichnisse werden geloescht 
ECHO und in den Dateinamen wird AWK2 hinzugefuegt) (j / n)
SET /p wahl=
if '%wahl%' == 'n' goto Nein
if '%wahl%' == 'j' goto Ja

:Ja
ECHO on

FOR %%I IN (*.bmp) DO ren "%%I" BV_"%%~nI".bmp

pause

我不知道如何在重命名所有文件后停止批处理文件。谢谢您的帮助。

假设您想重命名所有文件一次,前缀为
BV_u
,如
for
循环中的示例所示。注意,我使用了
choice
而不是
set/p

@echo off & setlocal

ECHO Moechten Sie das wirklich tun? (Bereits vorhandene Bildverzeichnisse werden geloescht 
ECHO und in den Dateinamen wird AWK2 hinzugefuegt) (j / n)
choice /c jn /m "wahl"
goto opt%errorlevel%

:opt1
for /f "delims=" %%I IN ('dir /b /a-d *.bmp ^| findstr /v /b "BV_"') do ren "%%~I" "BV_%%~I"
goto :eof
:opt2
echo do what ever you need to do here.

如果你读了
SET/p
@Gerhard上面的那行,我建议你改为
AWK2
你真的想这样做吗?(将删除预先存在的图像目录,并将AWK2添加到文件名中)(是/否)
1
for
缓冲一些文件名,重命名它们,然后读取下一个文件名,因此文件可能会被重命名多次;为了避免这种情况,请在('dir/B/A:-D-H-S“*.bmp“')do ren“%%I”“BV_%%~nxI”中为/F“delims=eol=|“%%I使用
;此方法首先获取文件的整个列表,然后再重命名其中的任何文件。2. <代码>设置“wahl=”&set/P wahl=“”
。3. <代码>如果/I“%wahl%”==“n”转到nein。4.哪里是
:不在
?5.不要使用<代码> SET/P<代码>考虑使用这样的“是”/“否”提示…