【问题标题】:Taking user input to add as prefix to filenames将用户输入作为前缀添加到文件名
【发布时间】:2019-10-11 06:13:26
【问题描述】:

我正在尝试创建一个,它将用户输入字符串作为前缀添加到文件夹中的所有文件中。

@echo off
SET /p Input=Enter prefix wanted ie "1906_0516_ORD_TGT5_": 
Echo You entered: "%Input%"
Pause
for %a in (*.*) do ren "%a" "%Input%%a"


Echo Successfully added %Input% to files.
Pause

什么都没有发生!

【问题讨论】:

  • 在批处理文件中,您需要将元变量的百分比字符 % 加倍,即for %%a in (*.*) do ren "%%a" "%Input%%%a"。我还建议您对用户输入进行某种验证,因为文件名等中不允许使用某些字符。
  • 输入想要的前缀,即“1906_0516_ORD_TGT5_”:89_您输入:“89_”按任意键继续。 . .该进程无法访问该文件,因为它正被另一个进程使用。那就是我得到的错误。我是新手,只是无法让它工作......
  • 我不知道这是对我的评论的回复还是您的问题应该包含的内容,但看起来您希望能够更改文件的名称已经打开,您可以想象这会很困难,因此您会收到错误消息。如果您从逻辑上考虑,看起来批处理文件本身可能位于您更改所有文件名的同一目录中,因此您可能希望将其过滤掉,for %%a in (*.*) do if /i not "%%a"=="%~nx0" ren "%%a" "%Input%%%a"

标签: batch-file windows-7 batch-file windows-7


【解决方案1】:

如果是批处理文件,则需要在 A 变量前面添加两个 % 符号。

@echo off
SET /p Input=Enter prefix wanted ie "1906_0516_ORD_TGT5_": 
Echo You entered: "%Input%"
Pause
for %%a in (*.*) do ren "%%a" "%Input%%%a"


Echo Successfully added %Input% to files.
Pause

如果您只是在 cmd 窗口中手动运行它,而不是使用批处理文件,那么您只需使用 1 % 而不是 2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-10
    • 2022-11-16
    • 2023-03-05
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多