gpt4 book ai didi

string - 批处理 - 从字符串中删除最后一个字符

转载 作者:行者123 更新时间:2023-12-02 03:46:41 27 4
gpt4 key购买 nike

我从 json 文件中得到了以下字符串:

39468856,

现在,我想用这些数字进行计算..因此,我必须删除末尾的 ,

此时我使用以下代码:

for /f "skip=24 tokens=2" %%a in (text.txt) do ( 

Set %%a=%%a:~0,1%
echo %%a

SET /a b=a*2
echo %%a
@echo Uebertragen in 10s:

echo %%a bytes

)

Set %%a=%%a:~0,1% 对我不起作用..并且SET/ab=a*2 (可能是因为其中的 , )。

请帮我解决这个问题...

提前致谢

最佳答案

如果没有看到完整的代码和输入文件,这些可能是一些最简单的解决方案。

for /f "skip=24 tokens=2" %%a in (text.txt) do for %%b in (%%a) do set /a "b=%%b*2"
echo %b%

此选项使用第二个 for 循环删除作为分隔符处理的逗号。

for /f "skip=24 tokens=2" %%a in (text.txt) do 2>nul set /a "b=2*%%a"
echo %b%

在这种情况下,操作数的顺序已更改,并且错误输出(逗号仍然存在)被丢弃。

如果输入文件数据允许,也许可以使用它

for /f "skip=24 tokens=2 delims=, " %%a in (text.txt) do set /a "b=%%b*2"
echo %b%

for/f 中包含逗号作为分隔符,分词器将丢弃它,并且逗号不会包含在检索到的数据中。

在所有情况下,由于 echo 已移出设置变量的代码块,因此无需延迟扩展。

但是,也许这些选项都无法使用。那么你最好的选择是使用延迟扩展

setlocal enabledelayedexpansion
for /f "skip=24 tokens=2" %%a in (text.txt) do (
for %%b in (%%a) do set /a "b=%%b*2"
echo !b!
)

或者,使用原始子字符串方法

setlocal enabledelayedexpansion
for /f "skip=24 tokens=2" %%a in (text.txt) do (
set "b=%%a"

rem Any of these could work
set "b=!b:~0,-1!"
set "b=!b:,=!"

set /a "b*=2"
echo !b!
)

关于string - 批处理 - 从字符串中删除最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32520904/

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