【问题标题】:Increase number in string in bat file?增加bat文件中字符串的数字?
【发布时间】:2013-05-20 14:42:03
【问题描述】:

如何增加字符串中 int 的值?

假设我有 foo-815-bar。我想要 foo-815-bar。 foo 和 bar 可以是常量(尽管如果 bar 可以是未知变量,则更好),而 815 是变量。这是一个要递增的 3 位数字,因此 foo-123-bar 将返回 foo-124-bar。

【问题讨论】:

  • 看看用表达式“设置”和“for /l in ('string')”

标签: windows batch-file batch-processing


【解决方案1】:

例子:

@echo off
set "string=foo-123-bar"
for /f "tokens=1-3 delims=-" %%i in ("%string%") do (
    set "pre=%%i"
    set /a number=%%j+1
    set "post=%%k"
)
set "string=%pre%-%number%-%post%"
echo %string%

.. 输出是:

foo-124-bar

【讨论】:

  • 是的,它有效,谢谢。最后一件事,是否可以保留位数?这样 10 将成为 010,而 3 将成为 003 ?谢谢
  • set "number=00%number:~-3%"
  • 如何使它成为一个函数?这样也许我可以写 set string =f string
  • 对不起,你不能在 cmd shell 中有功能,这不是C#
  • 我的意思是调用:函数字符串和标签:函数。我不确定语法,但我见过它使用过
【解决方案2】:

这应该可以帮助您开始...根据您的需要,您可能必须将其放置在循环中。

@echo off
set myFoo=foo-
set myBar=-bar
set /a myIncrementor=123
echo %myFoo%%myIncrementor%%myBar%
set /a myIncrementor+=1
echo %myFoo%%myIncrementor%%myBar%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2013-10-09
    • 2013-05-12
    相关资源
    最近更新 更多