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

Batch file 如何附加到for循环中批处理命令中的现有文件名,batch-file,cmd,windows-10,Batch File,Cmd,Windows 10,我正在尝试为一个项目创建一个批处理文件,它读取目录中的文件,并为每个文件运行一个命令,这些文件以某种方式(从另一个程序)操纵一个文件。运行程序时,它会将每个处理过的文件保存到输出文件夹中,扩展名为“\u updated”。如何使用批处理文件在命令中执行此操作,而不使文件扩展名成为文件名的一部分?例如,o/p从“Videoa.bin”变为“Videoa.bin\u updated.bin”。我怎样才能解决这个问题?代码如下 @ECHO ON cd [filename] SET v=output_

我正在尝试为一个项目创建一个批处理文件,它读取目录中的文件,并为每个文件运行一个命令,这些文件以某种方式(从另一个程序)操纵一个文件。运行程序时,它会将每个处理过的文件保存到输出文件夹中,扩展名为“\u updated”。如何使用批处理文件在命令中执行此操作,而不使文件扩展名成为文件名的一部分?例如,o/p从“Videoa.bin”变为“Videoa.bin\u 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

我想您看到的是这样的东西,下面只会回显新修改的文件名

@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

有关这方面的更多信息,我建议您运行帮助以查看有关变量扩展的详细信息

  • 获取/?

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

我想您正在查看类似的内容,下面将只回显新修改的文件名

@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

有关这方面的更多信息,我建议您运行帮助以查看有关变量扩展的详细信息

  • 获取/?

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

谢谢!这实际上是足够的信息。使用%%~na后,效果非常好!很高兴我能帮忙:)谢谢!这实际上是足够的信息。使用%%~na后,效果非常好!很高兴我能帮忙:)