您可以在函数内求和或在 cmd 中的 '!' 内使用 '!' 吗?

您可以在函数内求和或在 cmd 中的 '!' 内使用 '!' 吗?

在 cmd 中的延迟扩展方面遇到了一些困难。

这可能是一个愚蠢的问题,但是是否有任何方法可以在函数内求和(即没有“设置”)或使用!within !(或具有相同效果的东西);例如,~%%n+%y%在下面的情况下,可以使用括号将其视为其各部分的总和,还是我应该从不同的角度来看待它?

for /l %%n in (10 1 36) do (
for /f %%a in ("!alpha:~%%n+%y%,1!") do (
set "code=!code:%%n=%%a!"))

任何帮助都将不胜感激。谢谢

答案1

  • 批量执行(有符号的 32 位整数)数学运算的唯一方法是使用set /a命令。
  • 您可以使用 echo 和 set 的伪调用来强制另一种类型的 DelayedExpansion (不幸的是不是if) 并将常规变量周围的百分号加倍。

看起来您想通过字母顺序混乱来加密 var 中的文本code。在我看来,您的方法行不通,因为您还会更改已修改的字符。

请参阅此链接新功能::chr、:asc、:asciiMap来协助您完成任务。

相关内容