我无法在for循环中设置变量值。
@echo off
SET PID=CREE6-GGGG8-FFFF6-SSSS9-DDDD5
FOR %%x in (%PID:-= %) do (
echo %%x
SET v=(echo %%x| convert_2_scancode.py)
echo %v%
)
预期o / p CREE6 12 92 2e 23 ..........(转换后的CREE6扫描码)
答案 0 :(得分:1)
一方面......你正在回显变量v的'加载时间'值。要查看FOR / IF结构内或parens中的'运行时'值,你需要添加这一行(第二行)你的节目)。
setlocal enabledelayedexpansion
然后将echo%v%更改为
echo !v!
然后是下一个问题。您试图用
做什么SET v =(echo %% x | convert_2_scancode.py)
答案 1 :(得分:0)
由于我没有“convert_2_scancode.py”,我写了一个小“模拟器”而不是
C:\Users\Stephan\102>type t.bat
@echo off
SET PID=CREE6-GGGG8-FFFF6-SSSS9-DDDD5
set pid=%PID:-= %
for /f "tokens=* delims=" %%x in ('convert_2_scancode.bat %pid%') do set "v=%%x"
echo %v%
------------------
C:\Users\Stephan\102>type convert_2_scancode.bat
@echo converted scancode from %*
------------------
C:\Users\Stephan\102>t
converted scancode from CREE6 GGGG8 FFFF6 SSSS9 DDDD5
C:\Users\Stephan\102>
答案 2 :(得分:0)
我试试
@echo off
SET PID=CREE6-GGGG8-FFFF6-SSSS9-DDDD5
FOR %%x in (%PID:-= %) do (
echo %%x
for /f Delims=" %%v in ('echo %%x^|convert_2_scancode.py') do set v=%%v
)
echo %v%