Glo*_*wie 7 windows cmd wildcard batch-file
我有一个试图替换文件的批处理文件
C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*\Data\Config
Run Code Online (Sandbox Code Playgroud)
但*因计算机而异,因此我不能拥有输入列表
此批处理文件在另一个批处理文件中执行,该文件从命令行调用.
这是带有*path,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"
Run Code Online (Sandbox Code Playgroud)
这是另一个批处理文件,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
Run Code Online (Sandbox Code Playgroud)
C:\ clients.txt
10.10.10.10
10.10.10.11
Run Code Online (Sandbox Code Playgroud)
批处理文件通过命令行执行
C:\> C:\copy.bat
Run Code Online (Sandbox Code Playgroud)
问题是,如何使这个批处理文件工作,以便将*识别为通配符?
谢谢
for /d %%a in (
"C:\Users\All Users\Symantec\Symantec Endpoint Protection\12.*"
) do set "theFolder=%%~fa\Data\Config"
echo %theFolder%
Run Code Online (Sandbox Code Playgroud)
您只能在路径的最后一个元素中包含通配符.
要执行您需要的操作,您必须枚举12.*文件夹并选择一个.在这种情况下,选择与通配符匹配的最后一个文件夹(当do执行子句中的代码时,将覆盖该变量)
| 归档时间: |
|
| 查看次数: |
29098 次 |
| 最近记录: |