bat 文件执行cmd命令的几个应用(二)
注:以下所有
bat
命令,均可在 🌏 本站下载 - 按需下载即可!**
bat
文件创建方式:新建文本文件,写入相应命令,另存为.bat
文件,编码修改为ANSI
即可!
复制指定格式文件到某目录下
- 注:遇到同名文件时,文件会被覆盖!
@echo off
set /p f=请输入起始文件夹:
set /p m=请输入目标文件夹:
set /p i=请输入文件格式:
pushd %f%
for /r %%a in (*.%i%) do (zz
XCOPY /Y "%%a" "%m%"
)
popd
pause
按格式批量复制文件,并以原文件名+递增数字命名
@echo off
setlocal enabledelayedexpansion
set /p f=请输入起始文件夹:
set /p m=请输入目标文件夹:
set /p i=请输入文件格式:
set in=0
pushd "!f!"
for /r %%a in (*.!i!) do (
set /a out=!in!+1
set in=!out!
echo F| XCOPY /Y "%%a" "!m!\%%~na_!in!.%i%"
)
pause
按格式批量复制文件,同名文件重命名
setlocal enabledelayedexpansion
set /p f=请输入起始文件夹:
set /p m=请输入目标文件夹:
set /p i=请输入文件格式:
set in=0
pushd "!f!"
for /r %%a in (*.!i!) do (
if exist "!m!\%%~nxa" (
set /a out=!in!+1
set in=!out!
echo F| XCOPY /Y "%%a" "!m!\%%~na_!in!.%i%"
) else (
XCOPY /Y "%%a" "!m!"
)
)
pause
按格式批量复制文件,并以随机数命名
@echo off
setlocal EnableDelayedExpansion
set /p f=请输入起始文件夹:
set /p m=请输入目标文件夹:
set /p i=请输入文件格式:
pushd %f%
for /r %%a in (*.%i%) do (
echo F| XCOPY /Y "%%a" "%m%\!random!_!random!.%i%"
)
popd
pause
统计文件夹下某格式文件的数量
@echo off
setlocal enabledelayedexpansion
set in=0
for /f "tokens=* delims=" %%i in ('dir /b D:\MyDownload\*.jpg') do (
set /a out=!in!+1
set in=!out!
)
echo !in!
pause
将某目录下按文件格式乱序后重新排序
- 若担心
!random!_!random!
双随机数命名文件会出现同名文件造成文件被覆盖,可设置多个随机数命名,如:!random!_!random!_!random!
@echo off
setlocal EnableDelayedExpansion
echo 任务开始,请稍后……
set Start_TIME=%time:~0,2%:%time:~3,2%:%time:~6,2%
:: 统计 D:\MyDownload 目录下,txt 文件的数量
set li=0
for /f "tokens=* delims=" %%i in ('dir /b D:\MyDownload\*.txt') do (
set /a tu=!li!+1
set li=!tu!
)
:: 将统计 D:\MyDownload 目录下 txt 文件的文件名以随机数命名
for %%a in (D:\MyDownload\*.txt) do (
ren "%%a" "!random!_!random!.txt"
)
:: 将乱序后的txt文件名重新排序
set in=0
for %%n in (D:\MyDownload\*.txt) do (
set /a li=!li!-1
if !li! gtr -1 (
set /a out=!in!+1
set in=!out!
ren "%%n" "M - !in!.txt"
) else (goto :end)
)
:end
echo 开始时间:!Start_TIME!
set End_NAME=结束时间:
set End_TIME=%time:~0,2%:%time:~3,2%:%time:~6,2%
echo !End_NAME!!End_TIME!
pause
遍历某目录下的所有文件名,包括子文件夹内
- 遍历某目录下的所有文件名,包括子文件夹内,并统计文件数量以及任务耗时
@echo off
setlocal EnableDelayedExpansion
set /p Folder=请输入需要统计查询的文件夹:
echo 任务开始,请稍后……
set Start_TIME=%time:~0,2%:%time:~3,2%:%time:~6,2%
set h1=%time:~0,2%
set m1=%time:~3,2%
set s1=%time:~6,2%
echo 开始时间:!Start_TIME!
if exist list.txt del list.txt /q
set sum=-1
for /f "delims=" %%i in ('dir /b /a-d /s "%Folder%"') do (
set /a sum=!sum!+1
:: %%~nxi只显示文件名,%%i显示带路径的文件信息
echo %%i >> list.txt
)
set End_TIME=%time:~0,2%:%time:~3,2%:%time:~6,2%
set h2=%time:~0,2%
set m2=%time:~3,2%
set s2=%time:~6,2%
echo 结束时间:!End_TIME!
:: 计算秒数
if !s2! lss !s1! (
set /a m2=!m2!-1
set /a s2=!s2!+60
)
set /a s=!s2!-!s1!
:: 计算分钟数
if !m2! lss !m1! (
set /a h2=!h2!-1
set /a m2=!m2!+60
)
set /a m=!m2!-!m1!
:: 计算小时数
if !h2! lss !h1! (
set /a h2=!h2!+24
)
set /a h=!h2!-!h1!
echo 总耗时为:!h!小时!m!分!s!秒,共找到!sum!个文件
echo 已将所有文件名存储到list.txt,任务结束后,将自动打开list.txt文件查看!
start list.txt
pause
批量删除指定大小的文件
注:危险脚本,双击执行则删除脚本所在目录及其子目录所有指定大小的文件
* 1KB(kilobyte)=1000byte、1MB(megabyte)=1000000byte
* 代码中的10000单位为byte
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
@echo off
setlocal EnableDelayedExpansion
echo 任务开始,请稍后……
for /f "delims=" %%i in ('dir /b /a-d /s "%~dp0"') do (
if %%~zi LEQ 10000 (
del /f /s /q "%%i"
)
)
pause
删除我的电脑中的百度网盘同步空间
reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{18701C81-34AB-498E-8C7F-5D26B9C36732}" /f
评论
0 评论