【问题标题】:How can I add exlude list items to windows batch codes如何将排除列表项添加到 Windows 批处理代码
【发布时间】:2020-12-19 15:00:01
【问题描述】:
set exludelist= foldername1 foldername2 foldername3
pushd "%workdir%"
for /d %%f in (*) do (
   will do somestuff here...
)
popd

那么我如何在 for 循环中检查上面的 EXCLUDE 列表中的文件夹名称?如果当前文件夹名称在排除列表中,它应该传递到下一个。使用嵌套 if 语句?还是别的什么?

【问题讨论】:

  • 将现有的for 命令行替换为for /F "eol=| delims=" %%I in ('dir /AD /B 2^>nul ^| %SystemRoot%\System32\findstr.exe /I /L /X /V /C:"foldername1" /C:"folder name 2" /C:"& one more folder name"') do (。打开command prompt,运行dir /?findstr /?for /? 并从第一页顶部到最后一页底部仔细阅读每个输出帮助,以了解如何使用命令dir 搜索目录并过滤目录使用findstr 列出并使用for 处理过滤后的目录列表。

标签: windows file batch-file


【解决方案1】:
@echo off
setlocal EnableDelayedExpansion

set "excludeList=|foldername1|foldername2|foldername3|"
pushd "%workdir%"
for /d %%f in (*) do (
   if "!excludeList:|%%f|=!" equ "%excludeList%" (
      will do somestuff here...
   )
)
popd

!excludeList:|%%f|=!变量扩展中,如果%%f文件夹名称​​是在排除列表中,那么扩展将与原来的%excludeList%不同细绳。这意味着如果扩展与之前相同,则不排除%%f,所以...

插入| 分隔符只是为了避免排除的名称可能出现作为另一个有效、更长名称的一部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多