- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
@echo off
for /f "tokens=1,2 delims=," %%x in (my.csv) do (
if %M% LSS %%x set M=%%x
)
echo Max X Value= %M%
有时它工作正常,有时它会失败并出现以下错误:
%x was unexpected at this time.
最佳答案
问题是您在 for
循环中使用了 %m%
。这是在读取循环时评估的(在所有迭代之前)。换句话说,整个循环,直到并包括右括号,在执行之前被读取和评估。所以 %m%
将始终是它的初始值,无论您在循环中实际将其设置为什么。
一个例子应该可以说明这一点:
set val=7
for %%i in (1) do (
set val=99
echo %val%
)
echo %val%
这会导致(对某些人而言)意想不到的结果:
7
99
仅仅是因为第一个 echo 语句中的 %val%
在任何一个运行之前被解释(即,整个 for
循环被解释)。
您需要延迟扩展以及强制将 m
的值设置为第一个 %%x
的东西。使用 setlocal
命令和 !m!
而不是 %m%
将延迟 m
的评估,直到每次行被执行。
此外,将 m
初始设置为空,并在它是时强制将其设置为 %%x
将确保第一个值%%x
被加载到 m
中。
@echo off
setlocal enableextensions enabledelayedexpansion
set m=
for /f "tokens=1,2 delims=," %%x in (my.csv) do (
if "!m!" == "" set m=%%x
if !m! lss %%x set m=%%x
)
echo Max X Value = !m!
endlocal
将上述代码与此 my.csv
文件一起使用:
1,a
2,b
10,c
3,d
结果输出:
Max X Value = 10
如预期的那样,或者对于您在另一条评论中的样本数据:
422,34
464,55
455,65
421,88
你得到:
Max X Value = 464
关于windows - 此时 %x 出乎意料。批处理脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2190295/
一直在断断续续做一个项目,2个月没碰了,今天回来,报错无法运行。 IEnumerable query = mediaTitleCollection.OfType(); 调试器在此行停止并给出标题中描述
我最近读了一篇 article关于生成变更日志,我想将其集成到 package.json 脚本中。 我用正确的项目名称稍微更改了文章中的脚本,并将输出导出到 CHANGELOG.md "script
我添加了这段代码,现在我得到了一个意想不到的标记";"错误。 代码: var i = 0; var tabs = ""; while(i "+ idArray[i] +" &nbs
@echo off for /f "tokens=1,2 delims=," %%x in (my.csv) do ( if %M% LSS %%x set M=%%x ) echo Max X Va
我正在尝试重命名我的 Room 数据库中的列。我傻傻的用了列名index,想改成id,但是这个迁移函数很头疼: static final Migration MIGRATION_2_3 = new M
我不确定这是否是一个错误。代码编译得很好(没有警告),但是当我输入一个方法时,本地值(NSMutableString)会在调试器中显示以下内容: __NSAutoreleaseFreedObject(
这个问题在这里已经有了答案: Synchronous/Asynchronous behaviour of python Pipes (1 个回答) 关闭4个月前。 我正在做一个从 udp 套接字接收样
我是一名优秀的程序员,十分优秀!