将文本添加到文件夹名称的末尾,批次

add text to end of folder name, batch

首先 post 在这里 :) 我是创建批处理文件的新手,并且创建了以下批处理文件(我花了大约 3 周的时间才搞清楚,大声笑)。基本上,当我们获得新任务时,我们复制模板文件夹,然后将其重命名为下一个未使用的文件夹名称,例如。如果上一个文件夹是 15-P0028,下一个文件夹将是 15-P0029。批处理完美!但是,有时我们想在文件夹名称的末尾添加一个客户端名称,例如。 15-P0029 棕色。我希望在按顺序将文件夹重命名为下一个之后,批处理暂停以等待用户输入,这样我们就可以输入客户端名称,或者只需按回车键即可插入没有客户端名称的新文件夹。我认为使用 set /p 会起作用,但我不知道如何正确使用它。 谁能帮我解决这个问题,将不胜感激。

@echo off
setlocal enableDelayedExpansion
cd /d C:\Users\jbrown\Desktop\Test
set I=2
:NextI
if /I %I% LEQ 999 set II=0%I%
if /I %I% LEQ 99 set II=00%I%
if /I %I% LEQ 9 set II=000%I%
if not exist "15-P!II!" (
xcopy /s /e /i "15-P0000-Template" "15-P!II!"
goto :eof
)
set /a I+=1
if /i %I% LSS 9999 goto NextI
) 

是的,你明白了,你需要 /p "prompt" 命令。这样的东西会起作用

if not exist "15-P!II!" (
    set /p "client_name=OPTIONAL Enter a client name and press <ENTER>: "

    xcopy /s /e /i "15-P0000-Template" "15-P!II!!client_name!"
    goto :eof
)

我们不需要做任何额外的处理来检查用户是否输入了值。如果他们只是按下回车 client_name 应该只是一个空字符串。所以在末尾添加一个空字符串不会影响名称