问题标签 [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 投票
1 回答
84 浏览

batch-file - 脚本 - 延迟扩展 - 在 for 循环之外

我正在尝试在 For 循环之外使用变量。循环内的回声给出了预期的结果。当我在循环外回显变量时它不起作用。下面是脚本-

0 投票
3 回答
183 浏览

batch-file - 使用 %1 的两个 For 循环 - 延迟扩展?

我的工作批处理文件扫描一长串远程服务器,将那里的任何内容复制到本地服务器,检查日志文件中的关键字,如果找到关键字,则发送电子邮件。我注意到它总是在发送电子邮件,即使是空白日志文件也是如此。

我发现两个FOR循环都使用%1变量作为它们的输出 - 如在ECHO %1被调用的每一行中所见:servermove。由于缺乏更好的解释,它不会%1在循环之间重置为空。

我查看了近十几篇 SO 帖子,并且有点相信使用SETLOCAL ENABLEDELAYEDEXPANSION会解决这个问题。这就是我的理解结束的地方,到目前为止我还没有成功。

以下是相关代码:

我尝试更改:mailtest%%B在这两种情况下使用,但这也失败了。将SETLOCAL ENABLEDELAYEDEXPANSION及其对应物ENDLOCAL放在一个或另一个循环之前并将其更改%%A!A!也不起作用。

有人会以我的方式指出错误并提供可以帮助我解决此问题的建议或资源吗?

0 投票
1 回答
4163 浏览

windows - Windows Batch:对于变量内变量的块

我想创建一个变量变量,这意味着我想创建许多具有变量名称的变量,例如 Var 1、 Var 2、 Var 3、 Var 4。这有效(见下文),但ECHOing 不起作用,因为我必须使用-LoopEnableDelayedExpansion中的单一处理并且没有正确解释。FOR!var%num%!

所以这就是我所拥有的:

几个小时后,现在可以在CALLecho 前面使用 -Routine

我对你们的问题是现在如何制作

好一点。我第一次尝试

但这失败了,因为它在FOR单循环中。有没有机会让它比CALLING它更好?

提前谢谢帕特里克

0 投票
1 回答
8026 浏览

windows - 变量未按预期运行

我一直在努力让这个批处理文件的语法正确,但我无法弄清楚为什么有些东西不起作用。

  1. i每次我这样做时,变量都不会增加。
  2. 连接上strc似乎没有连接。

这是我的代码:

0 投票
1 回答
194 浏览

batch-file - 批处理文件传递延迟变量扩展作为参数

我有一个批处理变量,其中包含另一个变量的名称。当我CALL ECHO对变量执行 a 时,输出是我所期望的。但是,当我尝试将CALL ECHO命令的输出作为参数传递给另一个命令时,我遇到了问题。这就是我正在尝试的:

有谁知道如何使用延迟变量扩展调用 myCmd,就好像它是直接使用参数调用的:

我尝试这样做的原因是我需要多次调用 myCmd,其中唯一改变的是字符串“Bar”。我知道我可以使用三个变量(myCmdPre、myInnerVar 和 myCmdPost)来做到这一点,而不会延迟变量扩展。但是,似乎应该有另一种(更简洁)的方式来实现我的目标,而不必%myCmdPre%%myInnerVar%%myCmdPost%每次我想执行 myCmd 时都输入。

编辑

为了澄清,我在同一目录中编写了第二个批处理文件,名为 myCmd.bat,内容如下:

当我运行我的示例批处理文件时,生成的输出是:

好像没有任何东西通过管道传输到 myCmd。

0 投票
1 回答
475 浏览

batch-file - 在 if 循环中分配变量:Windows Bat 脚本

我正在尝试编写一个 bat 脚本并遇到以下问题。

以下是处理该问题的片段。

这个bat脚本的输出如下:

我期待 fileName 的回声具有价值2gen,但它仍在打印nil

在我的第一次尝试中,我没有使用setlocal enabledelayedexpansion enableextensionsand !fileName!(而是使用%fileName%

搜索解决方案后启用延迟扩展。但仍然无法得到确切的错误是什么。

正在使用的操作系统版本也是Windows 7 64 bit

请帮我指出错误。

谢谢!

0 投票
2 回答
44 浏览

variables - Batch: variable definition useable in count loop

In my batch I want to copy a variable amount of source- to target destinations.

I want to define like this:

Dependently from a defined amount of folders

I want to go through the folders in a loop:

When I show

I get what I expectet: source1, source2 etc. but

only provides

source1

instead of the expected value

"C:\folder1"

I thought, that I could resolve this by using DelayedExpansion but what did I miss?

0 投票
1 回答
53 浏览

windows - 子字符串操作中的延迟变量扩展

0 投票
2 回答
79 浏览

batch-file - 批处理脚本获取参数以处理参数加一

我希望能够获得下一个参数以与当前参数进行比较。因此,当 argVec 等于“--define”时,我想回显下一个参数。我得到的结果是“y”而不是“delivery”。

我的输入是: Cmd version version1 --define delivery

0 投票
2 回答
168 浏览

windows - 从 CMD %CD% 输出中删除感叹号 (!)

Windows CMD shell 正在!从目录名称中去除“”字符。

假设当前工作目录为“ C:\\!MyFolder

在 .CMD 文件中,我使用以下语法:

C:\MyFolder显示时不带 bang ( !)

这在 WinXP 到 Win8.1 中很常见。

问:有人知道解决这个问题的方法吗?