如何在for循环中的批处理命令中附加到现有文件名

时间:2019-04-03 03:12:03

标签: batch-file cmd windows-10

我正在尝试为项目创建一个批处理文件,该批处理文件读取目录中的文件并为每个文件运行一个命令,该命令以某种方式(从另一个程序)操纵该文件。在运行程序时,它将每个操作文件保存到带有扩展名“ _updated”的输出文件夹中。如何在我的命令中使用批处理文件来执行此操作,而文件的扩展名不会成为文件名的一部分?例如,o / p从“ Videoa.bin”更改为“ Videoa.bin_updated.bin”。我怎样才能解决这个问题?下面的代码!

@ECHO ON

cd [filename]
SET v=output_folder
mkdir %v%

for %%a in ([path to files]*\.bin) do [command, which takes in the following args: 
                                       output file name (the one with the _updated ext),
                                       and input folder(+more)]

PAUSE

1 个答案:

答案 0 :(得分:0)

我想您正在看这样的内容,以下内容将仅回显新的修改后的文件名。

@echo off
set "input=D:\input_folder\"
SET "output=C:\output_folder\"
mkdir %output% > nul 2>&1
for %%a in ("%input%*.bin") do echo "%%~na_update.%%~xa"

因此,原始文件名将为%%a,仅文件名将为%%~na,而扩展名将仅为%%~xa

有关此内容的更多信息,建议您运行帮助以查看有关变量扩展的详细信息。

  • for /?

对于您提到的其他命令部分,我对此一无所知,因为您没有指定任何细节,因此您需要弄清楚它如何适合上述代码,或者编辑您的问题并显示有关如何手动运行该命令的更多详细信息,以帮助其自动化。