在批处理文件中的if语句中调用python函数时出现奇怪的行为

布鲁诺·卡塔诺(Bruno Caetano)

每个人。

我试图从批处理文件中调用python函数,特别是在if语句内部(我正在使用python 3.3.2)。假设我在getFileRevision.py中有两个变量%filePath%和%filePath2%和一个python函数这是我的批处理脚本的一部分:

python getFileRevision.py %filePath%
set revision=%ERRORLEVEL%

python getFileRevision.py %filePath2%
set revision2=%ERRORLEVEL%

echo Before entering if statement:
echo revision=%revision%
echo revision2=%revision2%

python getFileRevision.py %filePath%
set revision=%ERRORLEVEL%

if exist %filePath2% (
    echo condition = true!
    python getFileRevision.py %filePath2%
    set revision2=%ERRORLEVEL%
)

echo revision=%revision%
echo revision2=%revision2%

我为两个不同的参数调用python函数,并打印返回值。然后再做一次,但是这次我在If语句中调用python函数。这是我的控制台中的打印内容:

    revision=109803
    revision2=109671
    condition = true!
    revision=109803
    revision2=109803

从这个结果中,您可以看到在If语句中调用python函数并没有改变返回值。有人知道这种奇怪行为的原因以及如何解决吗?

不管怎么说,还是要谢谢你。

莫纳克拉夫特

在代码块内(方括号内的任何代码),您不能使用'%'来访问最新的变量值。您需要enabledelayedexpansion使用!代替。

setlocal enabledelayedexpansion
python getFileRevision.py %filePath%
set revision=%ERRORLEVEL%

python getFileRevision.py %filePath2%
set revision2=%ERRORLEVEL%

echo Before entering if statement:
echo revision=%revision%
echo revision2=%revision2%

python getFileRevision.py %filePath%
set revision=%ERRORLEVEL%

if exist %filePath2% (
    echo condition = true!
    python getFileRevision.py %filePath2%
    set revision2=!ERRORLEVEL!
)

echo revision=%revision%
echo revision2=%revision2%

现在应该可以正常工作了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在批处理文件中的for语句中嵌套if语句

来自分类Dev

如何从批处理文件调用特定的Python函数?

来自分类Dev

如何从批处理文件调用特定的Python函数?

来自分类Dev

如何从批处理文件中调用 VBA 函数

来自分类Dev

当嵌套在 if 语句中时,启动 cmd 无法在 Windows 批处理文件中正确执行

来自分类Dev

在批处理文件中运行语句?

来自分类Dev

批处理文件中的if语句

来自分类Dev

批处理文件中的if语句

来自分类Dev

比较If语句中的批处理文件循环变量

来自分类Dev

在 Windows CMD 批处理文件中的 IF/ELSE 语句中设置变量

来自分类Dev

从批处理文件调用python行

来自分类Dev

在批处理文件中调用别名

来自分类Dev

直接在Powershell中测试批处理语句,而无需将调用包装在批处理文件中

来自分类Dev

如何处理批处理文件中的多个“ for”语句?

来自分类Dev

如何处理批处理文件中的多个“ for”语句?

来自分类Dev

批处理文件中的奇怪替换是无效错误

来自分类Dev

语句崩溃时嵌套的批处理文件

来自分类Dev

在批处理文件中使用 IF 语句时出错 (Windows)

来自分类Dev

如何使用父批处理文件中的参数调用子批处理文件?

来自分类Dev

如何在带有if语句和输入的批处理文件中调用另一个批处理文件?

来自分类Dev

依次在Windows批处理文件中调用两个函数

来自分类Dev

批处理文件:将输出函数调用存储在 var 中

来自分类Dev

批处理文件中的IF语句无法正常工作

来自分类Dev

批处理文件中的嵌套 /F 循环和 If 语句

来自分类Dev

如果忽略批处理文件中的语句变量赋值

来自分类Dev

从R调用批处理文件时路径中的空格问题

来自分类Dev

在批处理文件中调用Powershell脚本时,如何使用嵌套引号?

来自分类Dev

在批处理文件中调用Powershell脚本时,如何使用嵌套引号?

来自分类Dev

仅当文件夹为空时,如何从第一个批处理文件中调用第二个批处理文件?

Related 相关文章

  1. 1

    在批处理文件中的for语句中嵌套if语句

  2. 2

    如何从批处理文件调用特定的Python函数?

  3. 3

    如何从批处理文件调用特定的Python函数?

  4. 4

    如何从批处理文件中调用 VBA 函数

  5. 5

    当嵌套在 if 语句中时,启动 cmd 无法在 Windows 批处理文件中正确执行

  6. 6

    在批处理文件中运行语句?

  7. 7

    批处理文件中的if语句

  8. 8

    批处理文件中的if语句

  9. 9

    比较If语句中的批处理文件循环变量

  10. 10

    在 Windows CMD 批处理文件中的 IF/ELSE 语句中设置变量

  11. 11

    从批处理文件调用python行

  12. 12

    在批处理文件中调用别名

  13. 13

    直接在Powershell中测试批处理语句,而无需将调用包装在批处理文件中

  14. 14

    如何处理批处理文件中的多个“ for”语句?

  15. 15

    如何处理批处理文件中的多个“ for”语句?

  16. 16

    批处理文件中的奇怪替换是无效错误

  17. 17

    语句崩溃时嵌套的批处理文件

  18. 18

    在批处理文件中使用 IF 语句时出错 (Windows)

  19. 19

    如何使用父批处理文件中的参数调用子批处理文件?

  20. 20

    如何在带有if语句和输入的批处理文件中调用另一个批处理文件?

  21. 21

    依次在Windows批处理文件中调用两个函数

  22. 22

    批处理文件:将输出函数调用存储在 var 中

  23. 23

    批处理文件中的IF语句无法正常工作

  24. 24

    批处理文件中的嵌套 /F 循环和 If 语句

  25. 25

    如果忽略批处理文件中的语句变量赋值

  26. 26

    从R调用批处理文件时路径中的空格问题

  27. 27

    在批处理文件中调用Powershell脚本时,如何使用嵌套引号?

  28. 28

    在批处理文件中调用Powershell脚本时,如何使用嵌套引号?

  29. 29

    仅当文件夹为空时,如何从第一个批处理文件中调用第二个批处理文件?

热门标签

归档