所有,我是一个新手,对脚本有一点了解。 我做了这个.bat,效果很好:
for /l %%x in (1, 1, 4) do (
echo %%x
type A%%x.xml + tail.xml >> v%%x.stage
)
它执行4次循环,合并文件夹内的xml文件。 .bat与要合并的xml位于同一文件夹中。
但是,如果要执行10循环,则需要手动编辑数字4。 有什么办法可以使用文件夹中的文件数量进行循环吗? 假设文件夹中有15个.xml文件,因此循环将运行15次。 我已经尝试过在堆栈溢出时发现的不同循环代码,但无法使它们工作:( 你能帮我吗?
非常感谢
更新: 谢谢@Squashman,所以我的代码现在应该是这样吗?
for %%x IN (*.xml) do set /a count+=1
echo %%x
type A%%x.xml + tail.xml >> v%%x.stage
答案 0 :(得分:0)
如果保证数字范围是连续的, Squashman的建议会奏效。
要获得独立于任何可能差距的最高数量,您可以使用:
:: Q:\Test\2018\12\18\SO_53837368.cmd
@Echo off&SetLocal EnableDelayedExpansion
set "Max=0"
For /f "delims=a." %%A in ('Dir /B "a*.xml"') do (
Set /A "Num=%%A"
if !Num! gtr !Max! set "Max=!Num!"
)
Echo Max number is: %Max%
它将文件名在扩展名的前导a和点之间进行分隔,并保留唯一编号。
Set / A用于排除与非数字值可能的不匹配。