【发布时间】:2019-10-11 06:13:26
【问题描述】:
我正在尝试创建一个batch-file,它将用户输入字符串作为前缀添加到文件夹中的所有文件中。
@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