问题标签 [delayedvariableexpansion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4559 浏览

batch-file - 使用 EnableDelayedExpansion 的嵌套变量名称

我正在编写一个脚本来获取每列的最大长度,我正在尝试将最大长度的长度存储在 _c1...n 变量中。列数未知。

我能够获得每列的长度,创建变量以使用 set _c!i! = !n!, n 是长度,但为了设置特定列的最大长度,我需要将 current 与 max 进行比较并使用类似 !_c!!i!! 这不起作用,任何想法如何引用一个变量,它的名称的哪一部分来自另一个变量?

谢谢...

0 投票
2 回答
199 浏览

dos - DOS 级联命令字符串中的延迟扩展

我已经问过有关 DOS 中的级联命令的其他问题,但显然我对要考虑的全部内容还没有那么自信。

有人可以看一下我系统上的以下代码和输出,看看他们是否可以建议什么语法是错误的(注意,我已经手动断行了):

.
在此处输入图像描述

我曾尝试删除部分代码以修复个别部分,但我尝试和错误的尝试证明我不知道什么是错误的,而且我不会自己解决这个问题非常快 :(

在此处输入图像描述

0 投票
2 回答
466 浏览

batch-file - 延迟扩展在延迟扩展中不起作用

我有一个脚本可以完成我期望它做的所有事情,除了一行。

我以前做过类似的,但我不能让这个工作。

我得到的代码在这里

我期望这将获取 csv 文件的每一行并将其替换为自身,除了用变量 EODNUM 替换当前日期的字符串(它确实......只有变量在设置之前被扩展,所以没什么)...延迟扩展应该可以解决这个问题,但是我可以使用这行代码

因为我认为它太多了!对于 CMD 来说。

我错过了什么,还是有更好的方法来编码?(我不是任何类型的程序员,我编写的大部分代码都来自反复试验,并从其他脚本中“借用”,所以这可能是一种非常混乱的方式)。

0 投票
1 回答
26346 浏览

windows - 为什么我的设置命令没有存储任何内容?

我稍后尝试访问 TOMCAT_VER 的值,但它显示为空字符串。

为了进一步调试,我在设置位置的正下方插入了一个 echo 语句,但它似乎不起作用。禁用回显后,我可以看到显示这些变量的语句已设置,但我似乎无法将它们打印出来。

0 投票
2 回答
1176 浏览

cmd - Dos inline IF 测试错误级别,不使用延迟扩展

无论如何都可以在没有延迟扩展的情况下执行以下操作(一行,为了便于阅读而中断)?

如果是回声,我知道call可以使用,但似乎无法与if.

0 投票
1 回答
616 浏览

windows - cmd和感叹号

对于包含感叹号的文件夹名称,以下代码将失败。我想我需要启用 DelayedExpansion 来处理嵌套的 for 循环。有什么想法可以完成这项工作吗?谢谢!

0 投票
3 回答
1150 浏览

batch-file - 带有延迟变量扩展的批处理文件 - URL 编码 - 等号 - RSA 令牌转换器

我正在自动化 RSA 软令牌转换并将转换字符串传递给 Outlook。我意识到我无法使用批处理到 Outlook 命令行将字符串转换为 URL,但这不是我的问题。我的问题是将讨厌的等号转换为它的 URL 编码等效项“%3D”。

以下行无法对等号进行编码:

我试过了:

但是等号仍然未编码。

使用延迟变量扩展对等号进行 URL 编码的正确方法是什么?

任何帮助表示赞赏。提前致谢。

0 投票
1 回答
10959 浏览

windows - Cmd 和感叹号 - 第二部分

我真的很想知道为什么我的字符串替换过程在解析包含任何特殊字符(包括感叹号)的文本文件时有效。我预计延迟变量扩展会关闭&符号,百分号等的特殊含义,但会因感叹号而失败......

代码:

输入文件.txt:

命令行语法:

输出文件.txt:


编辑/补充:

1 1/2 年后,我不得不再次使用此代码段。请参阅另外两个处理毒字符的示例。第一个使用临时启用延迟扩展(参见 Ansgars 答案),第二个使用CALL. 两者都将解析当前目录中和当前目录下非空文件的路径和名称,但没有尾随驱动器号和当前目录的路径。

示例#1(不需要在set "File=!File..."and中加上双引号):echo "!FILE!">>...

示例 #2(速度较慢,需要用双引号括起来):

用于测试的文件和文件夹:

输出:

享受批处理!马丁

0 投票
2 回答
85 浏览

windows - 在 2 段相同代码中的批处理脚本中延迟变量扩展的不同行为

预期输出:
如果你看到这个,是的 2
如果你看到这个,它有效

实际输出:
如果你看到这个,它起作用了

有人可以解释为什么输出也没有显示“如果你看到这个,是 2”吗?

0 投票
1 回答
124 浏览

if-statement - DOS批处理if语句的奇怪行为:预期还是错误?

我刚刚遇到了一些完全奇怪的事情,我想知道这是否是预期的行为,或者我是否在批处理文件处理中发现了某种奇怪的错误。在不详细说明我正在尝试做的事情的情况下,下面是一个示例脚本,它显示了我正在谈论的行为。

或多或少,我所经历的是,在从 if 语句内部调用的函数调用内部设置的全局环境变量在 if 语句退出之前实际上并没有设置!

输出如下:

1(应该是 1)
1(应该是 2)
2(应该是 2)

那么,重申一下,这是预期的行为(以及为什么)?还是我遇到了某种错误?