如何在批处理文件中将变量与字符串或变量连接

2023-11-26

我想将变量与字符串连接起来。

在第 7 行到第 11 行中,我尝试连接 !somevariable!使用字符串或使用 %%P 变量。
但这似乎不起作用。

IE。当前文件夹中有文件 0_1_en.pdf。
该脚本将文件名快捷方式设置为第一位数字。

之后我想用字符串创建一个新变量,例如:
"GEN 0" where 0 is the !sPDFName!

完整代码:

 1 SETLOCAL EnableDelayedExpansion
 2 for /f "delims=" %%P in ('dir /b *.pdf') do (
 3    SET "sPDFName=%%~nxP"
 4    echo "!sPDFName:~0,1!"
 5    IF "!sPDFName:~0,1!"=="1" (SET "sPDFName=!sPDFName:~0,1!")
 6    IF "!sPDFName:~0,1!"=="0" (SET "sPDFName=!sPDFName:~0,1!")
 7    SET tempStr=GEN !sPDFName! 
 8    SET myvar=!myvar! %%P
 9
10    echo "%myvar%"
11    echo "%tempStr%"
12    ::echo "!sPDFName!"
13    pause
14    for /f "delims=" %%H in ('dir /b *.html') do (
15    IF "!sPDFName:~-0!"=="!%%H:~0,1!" echo %%H
16    )
17 )

连接有效!但你的回声失败了。

当您处于命令块(括号)中时,所有百分比变量都会在执行该块之前展开,因此输出echo "%myvar%"是进入 FOR 循环之前 myvar 的内容。

但你已经知道正确的方法,使用延迟扩展(与!)

所以你的代码应该看起来像

SETLOCAL EnableDelayedExpansion
for /f "delims=" %%P in ('dir /b *.pdf') do (
  SET "sPDFName=%%~nxP"
  echo "!sPDFName:~0,1!"
  IF "!sPDFName:~0,1!"=="1" (SET "sPDFName=!sPDFName:~0,1!")
  IF "!sPDFName:~0,1!"=="0" (SET "sPDFName=!sPDFName:~0,1!")
  SET tempStr=GEN !sPDFName! 
  SET myvar=!myvar! %%P

  echo "!myvar!"
  echo "!tempStr!"
  ::echo "!sPDFName!"
  pause
  for /f "delims=" %%H in ('dir /b *.html') do (
    IF "!sPDFName:~-0!"=="!%%H:~0,1!" echo %%H
  )
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在批处理文件中将变量与字符串或变量连接 的相关文章

随机推荐

  • Javascript unescape() 与 Python urllib.unquote()

    从阅读各种帖子来看 这似乎是 JavaScript 的unescape 相当于Pythonurllib unquote 但是当我测试两者时 我得到不同的结果 在浏览器控制台中 unescape u003c u0062 u0072 u003e
  • 从这个例子中确定 LR(k) 的 k ?

    我准备了以下语法 用于生成 C 逻辑和整数算术表达式的子集 Expression LogicalOrExpression LogicalOrExpression Expression LogicalOrExpression LogicalO
  • 在 Google 表格上将 HTML 下拉菜单与 Google Apps 脚本结合使用

    我正在 Google Sheets 上运行一个函数 要求用户从 相当长的 选项列表中进行选择 由于 UI 服务已被弃用 我想尝试使用 HTML 但我对此一无所知 我需要弹出 HTML 用户界面 让用户从列表中选择一个名称 然后在将名称传递回
  • 使用 JavaScript 在 Power Query 中使用正则表达式

    我需要 Regexp 而 M Power Query 没有对其的本机支持 我发现了围绕同一个优秀的 Web Page 和 JavaScript 想法的几种解决方案变体 比克康坦 雨果贝里 由于 JavaScript 的限制 我不得不采用它们
  • Matplotlib 表格格式化列宽

    我希望格式化表的一列 但是当迭代行时 每次迭代后列宽度都会发生变化 源代码 def p create table self events dates rows columns portfolio param events Dict Date
  • 使 C 模块变量以只读方式访问

    我想为模块变量提供客户端模块的只读访问权限 几种解决方案 1 最常见的一种 module a c static int a int get a void return a module a h int get a void 这使得每个变量共
  • JMeter - 使用 POST 变量发送 HTTP 请求时遇到问题?

    我正在尝试加载测试一个从存档数据库中获取记录的 java servlet Servlet 的工作原理如下 1 从 HTTP 标头读取 post 变量 2 使用变量查询数据库 3 返回 XML 我设置了一个测试 我想用 post 变量触发 H
  • 如何使用 NextJS Links 处理电话号码?

    我有一个使用 Next Link 的 Link 组件 我传入的电话号码格式如下 tel 15555555555 但是我收到错误 Invalid href passed to router tel 15555555555 不支持电话号码吗 N
  • Swift 和 NSUserDefaults - 当用户默认为空时 EXC_BAD_INSTRUCTION

    我正在将我的一个项目逐个文件转换为 Swift 我对 NSUserDefaults 有一个奇怪的行为 我使用 NSString 而不是 String 来与其他代码兼容 var selectedMonth NSString get retur
  • 将 CGRect 标准化为 0 到 1 之间

    正常化的最佳方法是什么CGRect值使其介于 0 和 1 单位坐标系 之间 一个非常简洁的方法是 CGAffineTransform t CGAffineTransformMakeScale 1 0 parentRect size widt
  • Java 连接池

    我搜索了连接池并阅读了相关内容 如果我理解正确的话 连接池就像打开连接的集合 如果建立或创建了连接 则应将其添加到连接池中 如果该连接已关闭 则应将其从连接池中删除 当它打开时 我可以一次又一次地使用它 在阅读这些有关连接池的教程和解释时
  • PyQt4 和 PyQt5 中的 QFileDialog 字符串有区别吗?

    我有一段使用 Python3 和 PyQt5 打开 QFileDialog 的代码块 from PyQt5 QtWidgets import QApplication QWidget QPushButton QFileDialog impo
  • 如何使 JSP 标记文件不忽略所有空格?

    我真的被这个难住了 我想输出一个列表 并让标记文件处理逗号 单数与复数等 但是当我显示列表时 它完全忽略空格 所以一切都像这样一起运行 我尝试使用 HTML 实体 thinsp ensp 和 emsp 我不能使用 nbsp 这些必须被破坏
  • 如何打印我的单选按钮并在文本区域中输入类型文本?

    我有带有四个单选按钮和一个输入类型文本的调查问卷 按顺序打印 不删除前一张 var todos input type radio todos on click gt var newText Array from todos forEach
  • 如何从express重定向到react-router?

    我正在将身份验证添加到我的应用程序中 该应用程序使用react router 我已经在之后设计了客户端路由认证流程示例在react router中 但使用passport而不是示例使用的localstorage 这一切都很好 下一步是保护我
  • 如何在Inno Setup中设置安装文件夹的权限

    我正在使用 Inno Setup 创建应用程序的安装程序 第一次运行时 我的应用程序正在创建一个 SQLite 数据库 但当用户没有修改安装文件夹的权限时 它无法实现这一点 我设法设置文件的权限 Files Source D jar Des
  • 使用 Vuforia 和 Unity 仅创建一次具有地平面检测的对象

    我正在尝试使用 Unity 和 Vuforia 创建 AR 应用程序 我有一个 3D 模型 需要在检测到地平面时生成 但这只需要发生一次 Vuforia 的工作方式是 当检测到新飞机时 它会继续生成对象 所以我需要做的是要么只检测一次平面
  • 如何查询非数字字段上的“之间”数字数据?

    我刚刚在数据库中发现了一个查询失败 导致报告失败 查询的基本要点 Select From table Where IsNull myField lt gt And IsNumeric myField 1 And Convert int my
  • 使用过滤查询*:*时Solr默认是如何排序的?

    我们当前的页面设置未应用过滤器 方面 查询 它是所有内容的列表 使用寻呼机 过滤器查询类似于 任何领域的任何内容 我无法弄清楚内容是如何排序的 它说这是 相关性 但是当您选择所有内容时 这意味着什么 我做了一些快速测试 它似乎没有按内容修改
  • 如何在批处理文件中将变量与字符串或变量连接

    我想将变量与字符串连接起来 在第 7 行到第 11 行中 我尝试连接 somevariable 使用字符串或使用 P 变量 但这似乎不起作用 IE 当前文件夹中有文件 0 1 en pdf 该脚本将文件名快捷方式设置为第一位数字 之后我想用