gpt4 book ai didi

batch-file - 如何转义 `@` 中的 `forfiles` 变量替换?

转载 作者:行者123 更新时间:2023-12-03 16:45:38 25 4
gpt4 key购买 nike

我正在使用这样的 forfiles 命令行 (Windows 7 x64):

forfiles /P "C:\root" /M "*.txt" /C "cmd /C echo @relpath"

如何避免替换 @relpath(当前迭代项的相对路径)以按字面意义获取 @relpath 输出? (...或任何其他 @ 变量?)


到目前为止,我尝试了以下操作,但均未成功:

  • \:@ 似乎在 \ 之前处理,所以 \@relpath 不起作用,而是展开的输出只是以 \;
  • 开头
  • ^:声明^@除了^消失外没有任何效果;写 ^^@ 也无济于事,一个 ^ 会保留在扩展输出中;
  • 0xHH:令我惊讶的是,forfiles 特定的十六进制数替换 0x40 也不起作用,看来这在变量解析之前完成;
  • @@:加倍 @ 保留第一个 @ 字面意思,就是这样;

最佳答案

你可以使用延迟扩展

forfiles /P "C:\temp" /M "st*.txt" /C "cmd /v:on /C set r=0x40 & echo !r:~0,1!relpath"

或者您可以使用百分比扩展。

set percent=%
set at=@
forfiles /P "C:\temp" /M "st*.txt" /C "cmd /C echo %percent%at%percent%relpath"

关于batch-file - 如何转义 `@` 中的 `forfiles` 变量替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32401591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com