我%%x
是
a=23
b=56
c=89
在一个.txt
叫hi.txt
for %%x in (hi.txt) do (echo %%x:~0,1 %%x)
但它失败了......
谢谢你
我想在每一行中回显“第一个字符”,但我不能使用 %%x:~0,1...
我%%x
是
a=23
b=56
c=89
在一个.txt
叫hi.txt
for %%x in (hi.txt) do (echo %%x:~0,1 %%x)
但它失败了......
谢谢你
我想在每一行中回显“第一个字符”,但我不能使用 %%x:~0,1...
我不确定您要做什么...我假设您要解析文件 hi.txt 并提取变量 (a,b,c) 和它们等于的数字..
@echo 关闭 设置本地启用扩展 for /f "tokens=1,2 delims==" %%i in (hi.txt) do ( echo %%i 的值为 %%j )
这将输出
a 的值为 23 b 的值为 56 c 的值为 89
如果您需要更多信息,请参阅“帮助”。
另请注意,我的示例是在 = 符号上进行解析,因此每个变量的宽度并不重要。你可以有一个像“MyText = 100”这样的行,它也可以工作。您的 ~0,1 假设每个值只有 1 个字符宽。
我希望这有帮助。
如果您需要做的只是打印一行的第一个字符,那么下面的脚本应该可以工作。我相信您最初的问题可能与延迟变量扩展有关。有关详细信息,请参阅“帮助设置本地”和“帮助设置”。
此版本的脚本将每一行读入一个临时变量,并将第一个字符剪切到另一个名为 firstCharacter 的变量中。这 !用于 CMD 脚本的延迟变量扩展功能。
@echo 关闭 setlocal ENABLEEXTENSIONS,ENABLEDELAYEDEXPANSION for /f %%i in (hi.txt) 做 ( 设置整行=%%i 设置 firstCharacter=!wholeLine:~0,1! 回声第一个字符是!firstCharacter! ) 本地端
输出是......
第一个字符是 第一个字符是 b 第一个字符是 c
我无法找到直接使用 %%i 的方法,因此临时变量 WholeLine。为了清楚起见,我添加了变量 firstCharacter,但它不需要存在才能使其工作。我本可以回应!wholeLine:~0,1!直接地。
玩得开心。