Batch 对指定目录下的文件进行批量循环操作

Batch 文件用于批量处理某一指定目录下的指定类型的文件,此时需要使用循环 for 来执行。

一、如复制指定目录下的所有 dll 文件到另一个地方

@echo off
REM 1、定义变量
set "source_dir=D:\DevKits\Source"
set "dest_dir=D:\Tmp\Dll01"

REM 2、如果目标目录不存在,则创建它
if not exist "%dest_dir%" (
    mkdir "%dest_dir%"
)

REM 3、复制源目录下的所有 .dll 文件到目标目录
for %%i in ("%source_dir%\*.dll") do (
    copy "%%i" "%dest_dir%"
)

echo 文件已成功复制到 %dest_dir%
pause

1、定义变量来指定从哪里将dll复制到什么地方,将变量放在双引号里面,可以避免特殊字符导致解析的问题。
2、检测目标路径是否存在,不存在则创建
3、遍历源目录,将指定的dll复制到目标路径目录下:

  • %%i :表示for循环中的变量,其中 %% 后接的字符为占位符,可以用其它字符代替
  • "%source_dir%\*.dll":表示源目录下的dll通配符,如果需要复制其它的文件,可以进行替换操作

二、如删除指定目录下的所有指定类型文件

@echo off
setlocal

:: 指定要清理的目录
set "target_dir=C:\Tmp\Dir"

:: 切换到目标目录
cd /d "%target_dir%"

:: 删除所有以 d.dll 结尾的文件
for %%i in (*d.dll) do (
    echo Deleting debug DLL: %%i
    del "%%i"
)

:: 结束
echo All debug DLLs have been deleted.
endlocal

1、setlocalendlocal :用于确保设定的环境变量只是在这之间起作用,而不会影响到批处理文件外的全局环境变量,保证影响最小化。
2、cd /d "%target_dir%":用于将执行环境切换到当前目录下,后续操作可以使用相对路径来进行,如循环 for 中的操作 *d.dll 即使用了相对路径的方式

posted @ 2024-07-29 14:20  Jeffxue  阅读(19)  评论(0编辑  收藏  举报