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



我想生成多个文件,类似于我将其保存在某个特定位置的文件。 例如,文件名是"MM_MTL_IM_20180726123109",只有文件名的最后两位数字应该不断变化。 我们可以使用批处理脚本来实现这一点,或者请向我建议任何其他技术

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

@Echo Off
Set "FullFileName=MM_MTL_IM_20180726123109.ext"
If Not Exist "%FullFileName%" Exit /B
For %%A In ("%FullFileName%") Do (
Set "FileNameOnly=%%~nA"
Set "FileExtension=%%~xA"
)
Set "FileNameBarLastTwoChars=%FileNameOnly:~,-2%"
Set "LastTwoFileNameChars=%FileNameOnly:~-2%"
For /L %%A In (100,1,159) Do (
Set "Seconds=%%A"
If Not "%%A"=="1%LastTwoFileNameChars%" (
Call Copy "%FullFileName%" "%FileNameBarLastTwoChars%%%Seconds:~-2%%%FileExtension%"
)
)
Pause

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

@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 个字符。
在这种简单的形式中,仅当原始文件和副本位于同一当前目录中时,这才有效。

相关内容

最新更新