批量变量赋值

2024-03-11

这个问题似乎(非常)愚蠢,我无法处理它:(

当我尝试这个批处理代码时:

if "%1" == "-i" (
set is = %2
echo. %is%
shift
)

使用 2 个(或更多)参数调用,它不起作用。它实际上打印出一个空白。 “shift”命令也没有完成。当我观看执行的代码(开头没有@echo off)时,我可以看到“set”命令已完成。

它出什么问题了?

调用示例:

c:\script.bat -i test -d bla

你有两个问题。默认情况下,括号中的语句组将同时完成变量扩展,即在您之前set命令。还有语义set是错误的,你不希望周围有空格=.

将其添加到文件的顶部:

setlocal ENABLEDELAYEDEXPANSION

并删除周围的空格= in set:

set is=%2

最后使用延迟扩展:

echo. !is!

可能的第三个问题是您可能需要两个SHIFTs,一个用于-i,其中一个是is争论。

Update

感谢 @dbenham 指出这不是语法错误set,这只是令人惊讶的行为,值得稍微解释一下。如果执行这些命令:

set a=one
echo "%a%"

结果是:

"one"

这是有道理的,但请尝试:

set b = two
echo "%b%"

你得到:

"%b%"

什么?这就是您在环境变量时所期望的b未设置。但我们just设置它。或者我们是否:

echo "%b %"

显示:

" two"

对于 Windowsset命令,与我所知道的任何其他语言或环境不同,空格很重要。前面的空格=成为环境变量名称的一部分,后面的空格成为值的一部分。这种不常见的行为是编写 Windows 批处理程序时常见的错误来源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批量变量赋值 的相关文章

  • Java中变量的默认值

    Java 中的每个类型在声明时都有一个原始值 文章原始数据类型 http docs oracle com javase tutorial java nutsandbolts datatypes html包含原始数据类型的描述 知道了这一点
  • 包含带空格的可执行路径的环境变量是否也应包含必要的引号?

    定义环境变量时 对我来说 在 Windows 上 也许有一个更通用的准则 set MY TOOL C DevTools bin mytool exe 如果该工具位于带有空格的路径上 set MY TOOL C Program Files x
  • 如何使用Python轻松地将变量扩展为字符串?

    这样做有什么好的习惯用法 代替 print s is a s s that s name adjective noun verb 我希望能够做一些事情来达到以下效果 print name is a adjective noun that v
  • CMD 或 Powershell 命令组合(合并)两个文件中的相应行[重复]

    这个问题在这里已经有答案了 是否可以使用 CMD 和 Powershell 将 2 个文件合并为 1 个文件 如下所示 file1 line1 tab file2 line1 file1 line2 tab file2 line2 file
  • 如何根据R中的条件创建新变量

    我正在尝试根据某些条件创建一个新变量 我的数据看起来像 a b 1 NA 2 3 3 3 NA 2 NA NA 我想要的是一个变量c这样 when a is not NA b is NA c a when a is NA b is not
  • 如何在类中使用常量类变量声明常量数组?

    如何在类中使用常量类变量声明常量数组 是否可以 我不想要动态数组 我的意思是这样的 class test const int size int array size public test size 50 int main test t 5
  • sed 替换为多行变量[重复]

    这个问题在这里已经有答案了 我正在尝试用跨多行的文本替换单词 我知道我可以简单地使用换行符 n 来解决这个问题 但我想保持字符串 干净 不包含任何不需要的格式 下面的例子显然是行不通的 read r d TEST lt
  • 2 批字符串问题

    1 是否有任何内置函数可以告诉我变量的内容是否仅包含大写字母 2 有没有办法查看变量是否包含字符串 例如 我想查看变量 PATH 是否包含 Ruby 对于第 1 部分 findstr就是答案 您只需使用正则表达式功能即可errorlevel
  • 单击按钮时,如何将数字存储在 html 表单输入中作为 javascript 变量? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 基本上我想做的是 当用户在 HTML 表单输入字段中输入一个数字 然后按下提交按钮时 该数字将存储在 JavaScript 变量中
  • jQuery 提取 div 内的文本,但不在 p 标签中

    在下面的代码中 我想将一个变量放入文本中div但不是里面的东西p tag div class review content merchant review content I want to grab this text p class r
  • C-为什么char c=129会转换成-127?

    如果我们分配 128到 char 变量 然后将其转换为 128因为二进制等价 10000000 first bit tells sign 二进制等价于129 is 10000001 它将转换成什么值 字符c 129 谢谢 S 实际上有几种可
  • .bat 文件将文件排序到文件夹中

    对于我的图片集 我希望文件夹中的所有图片按日期自动分类到文件夹中 幸运的是 这些文件已经以时间戳命名 2012 07 15 12 21 06 jpg 2012 07 15 12 21 26 jpg 2012 07 16 12 12 50 j
  • 更改 Wi-Fi 配置文件的密码

    在我志愿服务的长期护理医院中 每个月的第一天 访客 Wi Fi 连接的密码都会更改 这给工作人员带来了大量的工作 也给患者带来了很多挫败感 其中许多人的行动能力非常有限 是的 真正的解决方案是让 IT 团队保留相同的密码 但这不会发生 大多
  • 用于列出文件夹但排除特定文件夹的批处理脚本

    我希望此脚本列出文件夹名称中包含 deleted 的所有文件夹 但如果它们位于名为 done 的文件夹中则不列出 例如 列出文件夹 如果位于 C temp如果它在C temp random folder name但如果它在C temp do
  • Grep 批量 ping

    寻找一种更好的方法来做到这一点 而不是我习惯的 手动 方法 因为这是一个我必须定期经历的过程 我有一系列要 ping 的 IP 从10 0 1 15 to 10 0 50 15 第三个八位位组指的是物理位置 最后一个八位位组指的是该位置处的
  • C 中的变量定义是什么意思[重复]

    这个问题在这里已经有答案了 你们能告诉我 这在 C 中意味着什么吗 define Privileged Data Privileged Data static int dVariable 编译器对变量进行寻址有特殊意义吗 这只是一个宏Pri
  • 批处理文件 FOR/f 扩展

    我有一个文件 directories txt 与目录名称 每个在一行上 我喜欢扩展该行 C Documents and Settings USERNAME My Documents 在我的脚本中以真实用户名运行脚本 然而 回声与线路完全相同
  • 将文件夹中的每个文件移动到以该文件命名的自己的文件夹中的批处理脚本?

    所以如果我有 folder file1 txt folder file2 jpg folder file3 py 我想创建 folder file1 file1 txt folder file2 file2 jpg folder file3
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的

随机推荐

  • 在Java中写long和double不是原子的?

    单个变量的读写是原子的 语言保证 除非该变量是 long 或 double 类型 我正在阅读一门课程的幻灯片 发现上面写着 这门课是关于并发的 谁能向我解释为什么写 long 或 double 不是原子操作 这着实让我大吃一惊 它不是原子的
  • SplashScreen java 更改 alpha

    我正在循环遍历一些 png 来为 java 启动画面创建动画 我用这个开始动画 java splash images anim png SplashDemo 并在类中使用 png 您可以在这里找到该课程 http pastebin com
  • 使用 javascript 设置隐藏字段的值,然后从服务器端 C# 代码访问值

    我正在使用一个嵌套的 html 无序列表 样式为下拉列表 当单击内部列表列表项中的 a 标记时 它会触发一些 JavaScript 该 JavaScript 应该将隐藏字段的值设置为所单击链接的文本 javascript 似乎可以工作 我使
  • 在没有 Spring Security 的情况下保留 Spring 会话

    我正在寻求帮助来配置 Spring Boot 以在不使用 Spring Security 的情况下保留 Spring 会话 我从HttpSession JDBC Spring Boot 示例应用程序 https github com spr
  • 在 SQL Server 中,如何使用系统表/视图识别特定表的*所有*依赖关系?

    我正在编写一个 DDL 脚本来删除多个表 但需要首先确定这些表的所有依赖项 这些依赖项包括外键约束 存储过程 视图等 最好 我想在删除依赖表之前使用系统表 视图以编程方式编写脚本来删除这些依赖项 从头开始编写这非常混乱 您是否考虑过像这样的
  • 枚举值“”对于类型>“EnumType”无效并且无法序列化

    当使用 DataContractSerializer 编写具有如下成员的 DataContract 时 DataMember public PropertyId PropId get set 它报告序列化错误 SerializationEx
  • Angular2 是否有相当于 $document 的东西

    我已经开始研究 Angular2 并拥有 3 个嵌套组件的基本功能 但是我无法弄清楚如何将按键处理程序添加到文档中 如果没有 我将如何监听文档上的按键并做出反应 需要明确的是 我需要响应文档本身的 kepyress 而不是输入 在 Angu
  • Bootstrap 侧边栏滚动、附加和滚动监视

    NEWER 所以滚动现在正在工作 但它固定在页面顶部 我需要它位于正确的位置 内容旁边 然后开始在内容的当前位置滚动 我正在尝试让我的侧边栏像这里一样滚动 gt http getbootstrap com 2 3 2 components
  • 为什么 JavaScript 中的数组显示错误长度

    我正在学习 JavaScript 作为学习的一部分 我遇到了以下场景 我期望 a1 length 代码的最后一行 显示 201 但它显示 101 有什么想法吗 var a1 new Array for var i 100 i lt 100
  • NativeScript:如何禁用 WebView 中的缩放控件?

    我从以下问题中找到了在 Android WebView 中启用 禁用缩放控件的方法 如何删除Android webview上的缩放按钮 https stackoverflow com questions 10766669 how to re
  • 在 R/igraph 中可视化具有 3 层(三方)的图/网络

    我有一个 分层 网络 有 3 层 比如说父母 P 孩子 C 孙子 G 边缘总是指向年轻一代 专利 gt 子代 子代 gt 孙子或父代 gt 孙子 同一代中的顶点之间没有边 该图由 3 个边列表 P C C G P C 表示 下面给出一个简短
  • 无法在 gdal 中加载“gcs.csv”文件

    这个问题可能会重复 但我没有得到答案 我已经在 python ide 中编写了流动代码 out srs osr SpatialReference self out srs ImportFromEPSG 4326 它运行良好 但是当我从应用程
  • Corda:在一个流程中创建和使用相同的状态?

    是否可以在一个流中创建和使用相同的 corda 状态 或者在不同的子流中创建和使用它 我收到以下错误 Caused by net corda core flows NotaryException Unable to notarise tra
  • 在jquery中获取ruby值[重复]

    这个问题在这里已经有答案了 我有一个文本区域 在其中填充数据库记录 我想在 jquery 的 textarea 中访问相同的值
  • xml序列化c#

    无法理解我做错了什么 结果集是空的 我的代码 class Class1 public static object DeSerialize object resultObject XmlSerializer serializer new Xm
  • Android 推送通知状态检查

    用户可以在更高版本的 Android 中为应用程序禁用推送通知 应用程序有什么方法可以知道用户在设置中禁用了推送通知 看这里 http developer android com google gcm adv html unreg http
  • 如何在两个 docker 容器之间进行 nginx 反向代理负载平衡?

    我尝试使用相同的 Nodejs 应用程序在两个容器之间建立 nginx 反向代理负载平衡 目录结构 docker compose yml nginx nodejs index js php docker compose yml versio
  • Angular 2 - 将文件发布到 Web API

    我试图从 Angular 2 应用程序将文件传递到 Web API 但实际的文件数据未发送 这是我的 Angular 2 服务代码 var headers new Headers headers append Content Type mu
  • OpenFileDialog() 锁定文件夹

    I use OpenFileDialog 在我的 Silverlight 应用程序中 当我使用选择文件时ShowDialog 它只是锁定文件 直到我关闭我的应用程序 应用程序运行时我无法重命名或删除文件夹 浏览器中的 silverlight
  • 批量变量赋值

    这个问题似乎 非常 愚蠢 我无法处理它 当我尝试这个批处理代码时 if 1 i set is 2 echo is shift 使用 2 个 或更多 参数调用 它不起作用 它实际上打印出一个空白 shift 命令也没有完成 当我观看执行的代码