在批处理脚本中复制文件时更改文件名

时间:2014-05-24 12:14:19

标签: file batch-file

我想将文件从当前文件夹复制到另一个位置,如(CURRENT FOLDER)文件名这样(F0#CGDBANG000947532#)到另一个位置,如(\ 10.10.10.1 \ BasketsIn),文件名中的用户名就像(F0#CGDBANG000947532#logesh)最后F0#CGDBANG000947532#copy to F0#CGDBANG000947532 #username

感谢

2 个答案:

答案 0 :(得分:1)

易:

copy "c:\A" "d:\%username%_A"

修改 最后,在你的一些评论和其他问题之后,我理解你的要求(我认为)。

@echo off
for %%i in (%*) do if /i "%%~xi"==".eps" copy "%%i" "\\10.10.14.13\adman\in\displ\%%~ni%username%.%%~xi"
pause

答案 1 :(得分:0)

如果您的文件名没有扩展名,或者您希望在名称的最后添加用户名(即使在扩展名后),您可以使用以下简单命令:

COPY * \10.10.10.1\BasketsIn\*%USERNAME%

其中USERNAME是系统环境变量,可解析为当前用户的用户名。

但是,如果您的名称带有扩展名,并且您希望在文件名之后但在文件扩展名之前附加用户名,则可以使用?掩码字符,如下所示:

COPY * \10.10.10.1\BasketsIn\???????????????????????????????%USERNAME%.*

请确保您提供了足够的?来覆盖案例中最长的名称。如果您有兴趣,可以通过Super User在这个优秀,深入的dbenham答案中了解有关此方法的更多信息:

还有一点需要注意:对于具有“多个”扩展名的文件名,此方法可能无法正常工作,例如some.txt.doc