0

我无法在 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 扫描码)

4

3 回答 3

1

一方面...您正在回显变量 v 的“加载时间”值。要在 FOR/IF 构造或括号中查看“运行时间”值,您需要添加这一行(程序的第 2 行) .

setlocal enabledelayedexpansion

然后将您的 echo %v% 更改为

echo !v!

然后是下一个问题。你想做什么

SET v=(echo %%x| convert_2_scancode.py)

于 2013-08-02T19:26:57.947 回答
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>
于 2013-08-02T19:44:12.933 回答
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%
于 2013-08-03T06:34:03.030 回答