gpt4 book ai didi

linux - 使用 Batch 解决 Linux 通配符问题

转载 作者:可可西里 更新时间:2023-11-01 10:43:11 26 4
gpt4 key购买 nike

我基本上是在尝试在 Windows Batch 中实现这一行:cp */win/lib/*.dll ./bin。 Linux 很友好,可以让我使用这些奇特的通配符,但 Windows 不会接受其中的任何一个。完成这项工作的最佳方法是什么? for 循环似乎有点矫枉过正,但 copy、xcopy、robocopy 似乎都没有实现那种花哨的工作。

提前致谢!

编辑:对于上下文,我正在为 mingw32-make 编写一个 Makefile,我想将一堆依赖项复制到可执行文件的文件夹中。

最佳答案

FOR 循环可能感觉有点矫枉过正,但我​​们在这里讨论的是批处理,所以为什么不简单地为有办法做你想做的事而高兴呢?完全... :) 我知道没有其他方法可以做到这一点(除了使用外部工具)。请注意,目录掩码中的反斜杠需要加倍以便在 FINDSTR 中使用正则表达式,这是在第 4 行中完成的。否定字符类的插入符 ^ 需要转义两次,因为它被解释了两次。

编辑:更正为不在 *\win\lib 的子目录中包含 .dll

@ECHO OFF
SET dirmask=\win\lib
SET extension=.dll
SET regex=%dirmask:\=\\%\\[^^^^\\]*\%extension%$
FOR /F "tokens=*" %%G IN ('DIR /S /B ^| FINDSTR /R "%regex%"') DO COPY %%G .\bin

关于linux - 使用 Batch 解决 Linux 通配符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40020591/

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