gpt4 book ai didi

windows - 如何在批处理文件中组合数字和字符串

转载 作者:可可西里 更新时间:2023-11-01 11:53:20 40 4
gpt4 key购买 nike

我正在使用批处理文件来显示某种数字,例如00_test.txt 01_test.txt...10_test.txt 11_test.txt因此,这是我的代码。但我不能像我期望的那样表现出来

FOR /L %%x IN (1,1,10) DO (
set "extension=.txt"
set "fullname=%x%_test%extension%"
echo.%fullname%
)

上面代码的结果是_test.txt _test_txt 但预期的结果是

00_test.txt 01_test.txt

你能帮我编辑一下吗?

最佳答案

@echo off
setlocal enabledelayedexpansion
set "baseName=_test"
set "extension=.txt"

for /l %%a in (1 1 10) do (
set "n=0%%a"
echo !n:~-2!%baseName%%extension%
)

当解析器到达一段代码(在您的例子中是 for 和括号内的代码)时,在开始执行代码之前,所有变量读取都将替换为变量中的值.因此,如果一个变量在 block 内发生变化,并且需要在同一 block 内检索值,则有必要使用延迟扩展,告诉解析器引用为 !var! 的变量(而不是 %var%),不应在解析时替换,其值应在执行时访问。

所以,在这段代码中,%baseName%%extension% 与通常的语法一起使用,因为它的值在 for 中不会改变代码块,但 !n! 使用延迟扩展。它的值在 block 内改变,这个值必须在同一个 block 内访问。

0 前缀的连接和从变量右侧提取的两个字符确保了值 1 到 9 的初始 0 的存在

关于windows - 如何在批处理文件中组合数字和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23890940/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com