File 如何使用批处理脚本生成与保存在一个特定位置的文件类似的多个文件

File 如何使用批处理脚本生成与保存在一个特定位置的文件类似的多个文件,file,batch-file,File,Batch File,我想生成多个文件,类似于我将其保存在某个特定位置的文件。 例如,文件名为“MM_MTL_IM_20180726123109”,只有文件名的最后两位数字应不断更改。 我们可以通过批处理脚本来实现这一点吗?或者请向我推荐任何其他技术 @echo off setlocal set "name=%~1" set "stem=%name:~,-2%" for /L %%i in (10,1,59) do copy %name% %stem%%%i 此批处理文件将原始文件名作为参数,并创建其49个副本,将

我想生成多个文件,类似于我将其保存在某个特定位置的文件。 例如,文件名为“MM_MTL_IM_20180726123109”,只有文件名的最后两位数字应不断更改。 我们可以通过批处理脚本来实现这一点吗?或者请向我推荐任何其他技术

@echo off
setlocal
set "name=%~1"
set "stem=%name:~,-2%"
for /L %%i in (10,1,59) do copy %name% %stem%%%i
此批处理文件将原始文件名作为参数,并创建其49个副本,将“10”添加到“59”,而不是最后2个字符。

在这个简单的表单中,只有当原始文件和副本位于同一个当前目录中时,这才有效

这里是一个基本的示例脚本,它不是为了提高效率或成为最佳方法而设计的,而是为了以逻辑顺序显示一些基本的批处理文件命令及其语法

@Echo关闭
设置“FullFileName=MM\u MTL\u IM\u 20180726123109.ext”
如果不存在“%FullFileName%”退出/B
对于“%FullFileName%”中的%%A,请执行以下操作(
设置“FileNameOnly=%%~nA”
设置“文件扩展=%%~xA”
)
设置“FileNameBarLastTwoChars=%FileNameOnly:~,-2%”
设置“LastTwoFileNameChars=%FileNameOnly:~-2%”
对于(100,1159)Do中的/L%%A(
设置“秒=%%A”
如果不是“%%A”==“1%LastTwoFileNameChars%”(
调用副本“%FullFileName%”%FileNameBarLastTwoChars%%%s:~-2%%%FileExtension%
)
)
暂停

您只请求了“多个”文件,没有任何解释,因此如果您不希望此脚本复制您的文件
59次,您需要对代码进行调整,以便在同一目录中有60个不同名称的匹配文件,每个都有有效的秒数。
您的问题还声明“生成”而不是
复制
,因此,如果
复制
假设不正确,您必须调整代码。

您想将其更改为什么?…青蛙!文件名的最后两位数字应该是递增的,如00 01 02 etcSo您想替换文件名中的秒数,介于what和what之间吗?您是希望从当前文件名中存在的增量之后的下一个增量开始,还是希望包括当前文件名之前的增量以及当前文件名之后的增量?你还说了倍数,多少?仅限最长秒数,
59
,或者您对仍与
YYYYmmDDHHMMSS
格式匹配的文件名不感兴趣?还请注意,该网站不是免费的代码编写服务,我们希望这里的问题显示已编写和测试的代码,但存在可复制的问题。当我用文件名替换名称元素时,我发现系统无法在命令提示符中找到指定的文件错误。我用“MM_MTL_IM_20180726123109”调用了我的批处理文件作为参数,一切正常。虽然该名称不是必需的,但我添加了引号以允许文件名中出现空格。现在,如果将第一行更改为“ECHO ON”,您应该可以看到出了什么问题。