“FOR”在cmd批处理文件中如何工作?

2024-04-12

20 年来我一直在使用数十种语言进行编程,但无论我如何努力,我始终无法理解 Windows cmd shell 批处理文件中的“FOR”是如何工作的。我读

http://www.ss64.com/nt/for.html http://www.ss64.com/nt/for.html

以及互联网上的其他几篇文章,但仍然令人困惑并且无法完成任何事情。

有人能给我一个关于“FOR”一般如何工作的简洁解释吗?

对于一个更具体的问题,如何迭代 %PATH% 变量中的每个路径? 我尝试过

rem showpathenv.bat
for /f "delims=;" %%g in ("%PATH%") do echo %%g

这只会显示第一条路径,而不是全部路径。为什么 ?我做错了什么?


没有一个答案实际上有效。我自己设法找到了解决方案。 这有点黑客,但它解决了我的问题:

echo off
setlocal enableextensions
setlocal enabledelayedexpansion
set MAX_TRIES=100
set P=%PATH%
for /L %%a in (1, 1, %MAX_TRIES%) do (
  for /F "delims=;" %%g in ("!P!") do (
    echo %%g
    set P=!P:%%g;=!
    if "!P!" == "%%g" goto :eof
  )
)

哦 !我讨厌批处理文件编程!

Updated

马克的解决方案更简单,但它不适用于包含空格的路径。这是马克解决方案的稍作修改的版本

echo off
setlocal enabledelayedexpansion
set NonBlankPath=%PATH: =#%
set TabbedPath=%NonBlankPath:;= %
for %%g in (%TabbedPath%) do (
  set GG=%%g
  echo !GG:#= !
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“FOR”在cmd批处理文件中如何工作? 的相关文章

  • 有没有类似 sed 的 cmd.exe 实用程序? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想使用 Windows 命令行以编程方式编辑文件内容 cmd exe http en wikiped
  • 如何在 Windows PowerShell 中使用 .bat 文件更改当前目录?

    我正在学习 Windows PowerShell 并且正在努力完成非常基本的任务 如何创建 bat 文件来更改当前目录 简单的 bat 文件cd mydir里面用得很好cmd exe 但它在 PowerShell 中不起作用 PS C Us
  • 无法删除 Windows 7 上尾随空格的文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Issue 我有一个无法删除的 Windows 7 子目录 虽然我知道这里的其他人以及互联网上其他地方的许多人都询问过此类一般的 Wind
  • Powershell命令:rm -rf

    rm是删除item 但是参数是多少 rf做或表示 每当我输入 help rf 时 它都会打印 powershell 中可用命令的完整列表 如果您输入会发生什么rm rf在 powershell 中 通过阅读周围的资料 我发现它会删除驱动器上
  • 迭代多级提升树

    我的树看起来像这样 Library L ID 1 Book B ID 1 Title Moby Dick Book B ID 2 Title Jurassic Park Library L ID 2 Book B ID 1 Title Ve
  • 用于在命令提示符下运行 .exe 的 Bat 文件

    我想创建一个 bat 文件 这样我只需单击它即可运行 svcutil exe language cs out generatedProxy cs config app config http localhost 8000 ServiceMo
  • 从android执行.bat文件

    我正在尝试执行 xxx bat 文件以从我的 Android 应用程序重命名该文件 听到的是我的代码 Runtime getRuntime exec Environment getExternalStorageDirectory File
  • 如何从VBA在CMD中输入多行代码?

    我想打开一个cmd exe 然后执行几行代码 我在网上搜索了一些例子 我尝试修改的代码 strToPrint Hello World Shell cmd exe K echo strToPrint vbNormalFocus I found
  • 从MAC地址获取IP。 arp -a 不显示设备

    我正在尝试编写一个批处理文件 该文件应该在连接到网络 腾达 WiFi 路由器 时找到我的 Android 手机的动态分配的 IP 所以我正在尝试arp a并搜索我手机的 MAC 地址 以便我可以从表中获取其 IP C Users Leero
  • 为什么我不能在 Laravel 路径中使用“php artisan”命令(Windows)

    我尝试在 Ubuntu 中学习 Laravel 命令 php artisan 在终端的 laravel 文件夹路径中工作 我刚开始在Win7中这样做 我在cmd exe中输入 cd c wamp www myproject 来更改larav
  • VS Code 终端无法识别 PATH 变量

    我在 PATH 中添加了一个目录 但 VS Code 中的终端无法识别我尝试从该目录运行的命令 exe 终端使用 cmd 而不是 power shell 我缺少什么 重新启动我的计算机 它就工作了 显然 VS Code 无法识别这些更改
  • 批处理文件中的 URL 解码

    如何在批处理文件中 urldecode 以下字符串 我需要更改以下内容 http x3a x2f x2f www example com x2f some page x2f some x2f link html to this http w
  • 如何在共享驱动器上执行 xpdf (pdftotext.exe)?

    我正在尝试解析pdf to text via PHP and XPDF pdftotext exe 在我的本地主机上 一切运行良好 但是当我尝试将所有内容移动到服务器上时 我遇到了麻烦 首先我检查了服务器上的一些设置 安全模式是off ex
  • 阻止 gulp 更改 shell/cmd 标题名称

    当 gulp 被调用时 它会将我的 cmd windows 标题更改为 gulp 我希望窗口名称保持原样 我知道我可以使用https www npmjs com package gulp shell https www npmjs com
  • 如何将批处理变量设置为另一个脚本的输出

    我尝试将批处理变量设置为另一个命令的输出 在 Linux Unix 中 您可以简单地使用反引号 例如 在 csh 中 set MY VAR tail etc passwd windows 批处理中有类似的东西吗 实际上我已经发现了一些东西
  • 如何从 CMake 运行 .bat 文件?

    如何在预链接或构建后事件中从 CMake 运行 bat 文件 你可以使用add custom command e g if WIN32 add custom command TARGET
  • Windows批处理文件:在for循环中设置变量

    我有许多具有相同命名方案的文件 作为示例 四个文件分别称为 num 001 001 txt num 002 001 txt num 002 002 txt num 002 003 txt 第一组数字代表它来自哪个 包 第二组数字只是用来区分
  • 如何测试 Windows (10) 上是否安装了 Python,如果未安装则运行 exe 来安装它?

    仅当第一个命令失败时 我才需要在 Windows cmd 上运行第二个命令 在另一个场景中 我想在检查 python setup 是否安装后打开它 我用了这个命令 python version path to python install
  • 批处理文件中的 Powershell - 如何转义元字符?

    运行 Windows 7 当我复制文件在例程期间到外部磁盘文件备份 我使用 Powershell v2 从批处理文件 在副本文件上重新创建原始文件的所有时间戳 以下代码在大多数情况下都能成功运行 但并非总是如此 SET file 1 SET
  • shell进程的并行执行

    有没有一个工具可以在 Windows 批处理文件中并行执行多个进程 我发现了一些有趣的 Linux 工具 parallel http mi eng cam ac uk er258 code parallel html and PPSS ht

随机推荐

  • 如何使用expo文件系统保存图库中的二维码

    我正在使用 expo 开发一个 React Native 项目 它包括创建一个二维码 我已经完成了 将二维码转换为图像 然后将其保存到图库 我想将 QR 码转换为图像 然后将其保存到我的图库中或共享 在下面给出的代码中 在编译时会出现错误
  • C++ 将基础对象类型转换为派生对象

    所以我有一个动态分配的基类数组 我在数组中存储了其派生类的一些对象 学生 基 类及其派生类都有一个getInfo 函数 显然派生类已经覆盖了该基类getInfo 目标是使用getinfo从基类中获取函数 然后将派生类的两个对象键入类 返回派
  • LINQ Count ..最好的方法

    我的公司刚刚开始使用 LINQ 但我仍然对 LINQ 命令和 SQL 的抽象性 如果这是一个词的话 有一些疑问 我的问题是 Dim query From o In data Addresses Select o Name Count 在我看
  • 错误:参数类型不兼容

    我正在用 C 写一个列表 以下是来源 include
  • Android Volley 库无法处理 204 和空主体响应

    我正在使用最新的 Volley 库 当我的 api 返回 204 且响应中没有正文时 我遇到了问题 BasicNetwork java 中的以下代码似乎未按预期工作 Some responses such as 204s do not ha
  • 在 junit 中模拟 System.getenv 调用时遇到问题

    我正在尝试使用 junit 和mockito 对此非常新 为 Spring Boot 应用程序编写单元测试 基本上在我的代码中 我已经为 manifest yml 文件 用于部署 中的特定 URL 指定了一个环境变量 我可以通过它访问Str
  • Object.assign 未按预期工作

    我有一个名为 bookings 的对象 其中有几个属性 我想使用 Object assign 进行扩展 如下所示 let data Object assign booking hiw event hiw booking locale tip
  • 如何在启用视觉样式的情况下将控件渲染为看起来像 ComboBox?

    我有一个模仿的控件ComboBox 我想渲染该控件以便该控件border看起来像标准的Windows 组合框 具体来说 我遵循了 MSDN 文档 除了禁用控件时的渲染之外 所有控件的渲染都是正确的 需要明确的是 这是针对具有视觉风格已启用
  • ASP .NET 单例

    只是想确保我在这里没有假设一些愚蠢的事情 在 ASP Net Web 应用程序中实现单例模式时 静态变量范围仅适用于当前用户会话 对吧 如果第二个用户正在访问该站点 那么它是不同的内存范围 静态成员仅具有当前工作进程的作用域 因此与用户无关
  • 为什么 LINQPad 将枚举整数值转储为字符串?

    我使用 LinqPad 来测试一些 Enum 函数 但在使用 Dump 时没有得到像我预期的整数 为什么 ToList 解决了这个问题 void Main Enum GetValues typeof Options Cast
  • Gas 与 nasm:哪个汇编器生成最好的代码?

    这两种工具都将汇编指令直接翻译成机器代码 但是是否有可能确定哪一个生成最快 最干净的代码 当你用汇编程序编写时 您正在准确地描述生成的指令所以它不依赖于汇编器 这取决于你 您编写的助记符与机器代码中的实际指令之间存在一一对应的关系
  • 原始(二进制)数据太大而无法写入磁盘。如何按块写入磁盘(附加)?

    我在 R 中有一个很大的原始向量 即二进制数据数组 我想将其写入磁盘 但我收到一条错误消息 告诉我该向量太大 这是一个可重现的示例和我收到的错误 gt writeBin raw 1024 1024 1024 2 test bin Error
  • jqgrid按文本问题对列进行排序

    我在我的网站中使用了 jqgrid 但遇到了一个问题 我做了什么 name type index type width 40 editable true edittype select sorttype text editoptions v
  • SASS 将特定属性从父级扩展/共享/继承到子级,反之亦然

    是否可以将所选 特定属性从父级扩展到 共享给子级 例如不创建变量 main container padding 20px margin 20px ul padding parentPadding margin 0 或相反亦然 就你而言 ma
  • 在 Fortran 中读取行数已知但每行条目数未知的数据文件

    如何读取包含已知行数但每行中的条目数未知的数据文件 例如如果我的数据文件包含类似的内容 1 3 4 5 6 7 8 9 1 3 5 6 4 5 6 7 8 3 5 6 7 8 4 5 7 8 即三行 但每行中的数据未知 有一次我需要来自一行
  • 引导断点...需要一些说明“xs sm md lg”

    所以 在网上查找 我看到一些最近的文章指出xs断点是480px及以下 其他 声明767及以下 我的理解 可能不正确 xs 适用于手机 480 像素及以下 col sm 适用于平板电脑 480 像素至 767 像素 等 然而 当我应用 hid
  • PHP:获取 HTTP 协议版本(HTTP/1.1 与 HTTP/2)

    到目前为止 我的 php 应用程序到处都采用 HTTP 1 1 所以我定义了所有标题 如下所示 header HTTP 1 1 500 Internal Server Error 但现在我的服务器也支持 HTTP 2 我想使用正确的 HTT
  • 类方法和实例方法同名

    我想做这样的事情 class X classmethod def id cls return cls name def id self return self class name 现在打电话id 对于类或其实例 gt gt gt X id
  • 如何在 Tensorflow 中设置损失操作的名称?

    在 Tensorflow 中 我可以为操作和张量指定名称 以便稍后检索它们 例如在一个函数中我可以做 input layer tf placeholder tf float32 shape None 300 name input layer
  • “FOR”在cmd批处理文件中如何工作?

    20 年来我一直在使用数十种语言进行编程 但无论我如何努力 我始终无法理解 Windows cmd shell 批处理文件中的 FOR 是如何工作的 我读 http www ss64 com nt for html http www ss6