【问题标题】:Batch file, wildcard in folderpath, no idea what the wildcard can be批处理文件,文件夹路径中的通配符,不知道通配符可以是什么
【发布时间】:2014-11-05 19:28:10
【问题描述】:

我有一个批处理文件试图替换

中的文件
C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*\Data\Config

但是 * 因计算机而异,所以我不能有输入列表

此批处理文件在另一个批处理文件中执行,该批处理文件从命令行调用。

这里是带有 * 路径的批处理文件,C:\script.bat

@echo off
if exist "C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*\Data\Config\SyLink.xm_" del /Q "C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*\Data\Config\SyLink.xm_"
ren "C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*\Data\Config\SyLink.xml" sylink.xm_bak
del /Q "C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*\Data\Config\SyLink.xml"

echo.
echo Copying new SyLink.xml
echo.
copy C:\SyLink.xml "C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*\Data\Config"


echo.
echo Deleting temp files
del /Q "c:\SyLink.xml"

这是另一个批处理文件,C:\copy.bat 调用第一个批处理文件,即 C:\script.bat

xcopy C:\sylink.xml \\10.10.10.10\c$
xcopy C:\sylink.xml \\10.10.10.11\c$
D:\pstools\psexec.exe @C:\clients.txt -c C:\Script.bat

C:\clients.txt

10.10.10.10
10.10.10.11

批处理文件通过命令行执行

C:\> C:\copy.bat

问题是,如何使这个批处理文件工作,以便将 * 识别为通配符?

谢谢

【问题讨论】:

  • 请提问。

标签: windows batch-file cmd wildcard


【解决方案1】:
for /d %%a in (
  "C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*"
) do set "theFolder=%%~fa\Data\Config"

echo %theFolder%

您只能在路径的最后一个元素中包含通配符。

要执行您需要的操作,您必须枚举12.* 文件夹并选择一个。在这种情况下,匹配通配符的最后一个文件夹被选中(因为do子句中的代码被执行,变量被覆盖)

【讨论】:

    【解决方案2】:

    试试这个:

    @echo off
    
    For /D %%D in ("C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*") Do (
        Set "Dir=%%~fD\Data\Config"
    )
    
    If exist "%Dir%\SyLink.xm_" Del /q %Dir%\SyLink.xm_"
    Ren "%Dir%\SyLink.xml" sylink.xm_bak
    Del /q "%Dir%\SyLink.xml"
    
    echo.
    echo Copying new SyLink.xml
    echo.
    copy C:\SyLink.xml "%Dir%"
    
    
    echo.
    echo Deleting temp files
    Del /q "c:\SyLink.xml"
    

    /D 切换文件夹查找。

    %%~fD 从文件夹中获取完整路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 2019-05-14
      • 2011-05-15
      • 2022-12-16
      • 2011-02-19
      • 1970-01-01
      • 2018-12-12
      相关资源
      最近更新 更多