【发布时间】:2017-02-22 06:49:21
【问题描述】:
我需要一个根据文件夹名称重命名我的文件的批处理文件。
例如我有这个文件夹:
E:\PROGET\01_Progetti\1_TRATTATIVE\IT.16.9291_Fabbricato ad Milano (MI) - Ing. Bianchi\03-CALCOLO\02-XLS\
其中包含
CB-Tech_92XX - .xls
Punz_92XX - .xls
我想将它们重命名为
CB-Tech_9291 - .xls
Punz_9291 - .xls
有可能吗?
编辑:
我从一个索要代码但没有收到任何投诉的人那里找到此代码 Rename all files in a directory with a Windows batch script
我稍微改了一下:
@echo off
setlocal enableDelayedExpansion
for %%F in (*92XX*) do (
set "name=%%F"
ren "!name!" "!name:92XX=9XXX!"
)
@pause
现在我只需要了解如何获取路径(完成),仅提取数字(尚未)并存储在变量中(完成)。
设置变量应该是这样的
set "number=projectnumber"
SET mypath=%~dp0
好的,现在我有了路径,只需要在 IT.16 之后提取 4 个字符。
稍后会编辑:)
编辑 2:
@echo off
setlocal enableDelayedExpansion
SET mypath=%~dp0
set projectnumber=%mypath:~41,4%
for %%F in (*92XX*) do (
set "name=%%F"
ren "!name!" "!name:92XX=%projectnumber:~0%!"
)
@pause
是的!这适用于这个特定的文件夹!!
现在我只需要了解如何搜索和提取路径内的数字以使其更通用。
我正在寻找一个函数,它返回字符串 IT.16 的第一个字符的位置。 有什么建议吗?
【问题讨论】:
-
哇,你真有趣!
-
我只是想说明您的问题有多“具体”;请阅读帮助主题How do I ask a good question?
-
你只是想骗我。你不明白2行的问题吗?不要回答。否决我的目的是什么?你可以写“你能说得具体一点吗?”晚安先生,感谢您的贡献
-
请注意stackoverflow.com 不是免费的脚本/代码编写服务。如果您告诉我们到目前为止您已经尝试过什么(包括您已经在使用的脚本/代码)以及您遇到的问题,那么我们可以尝试帮助解决具体问题。您还应该阅读How do I ask a good question?。
-
你提到的问题大约有 5 年的历史了,从那时起这个网站的规则发生了很大的变化。无论如何,你编辑了你的帖子并展示了你自己的努力,所以保持冷静,一切都很好......现在让我们坚持技术方面的内容:我不会从整个路径字符串中提取项目编号,而是分两步完成:1.
set "projectnumber=%mypath:*IT.16.=%",2.set "projectnumber=%projectnumber:~,4%";这样路径可以是任何东西,并且仍然可以正确获取数字(只要IT.16.只出现一次)...
标签: batch-file