bat 文件执行cmd命令

文章最后更新时间:2024-10-24 19:56:29

bat 文件创建方式:新建文本文件,写入相应命令,另存为 .bat 文件,编码修改为 ANSI 即可!

image.png

复制指定格式文件到某目录下

  • 注:遇到同名文件时,文件会被覆盖!
@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

强制关闭或开启系统自动更新

  • 关闭系统自动更新
@echo off
del /F /S /Q /A C:\Windows\SoftwareDistribution\Download\*
rd /S /Q C:\Windows\SoftwareDistribution\Download
md C:\Windows\SoftwareDistribution\Download
echo y|cacls "C:\Windows\SoftwareDistribution\Download" /e /p SYSTEM:N
echo y|cacls "C:\Windows\SoftwareDistribution" /e /p SYSTEM:N
net stop wuauserv
sc config wuauserv start= disabled
pause
  • 开启系统自动更新
@echo off
echo y|cacls "C:\Windows\SoftwareDistribution\Download" /e /p SYSTEM:F
echo y|cacls "C:\Windows\SoftwareDistribution" /e /p SYSTEM:F
sc config wuauserv start= auto
net start wuauserv
pause

配合 NetFx3.cab 安装 NET 3.5

@echo off
echo.
md C:\source\sxs
echo y|cacls "C:\Windows\SoftwareDistribution\Download" /e /p SYSTEM:F
echo y|cacls "C:\Windows\SoftwareDistribution" /e /p SYSTEM:F
sc config wuauserv start= auto
net start wuauserv
echo.
set net=%~dp0
copy %net%NetFx3.cab C:\source\sxs\NetFx3.cab
echo.
dism.exe /online /enable-feature /featurename:netfx3 /Source:C:\sources\sxs
echo.
rd /S /Q C:\source
echo y|cacls "C:\Windows\SoftwareDistribution\Download" /e /p SYSTEM:N
echo y|cacls "C:\Windows\SoftwareDistribution" /e /p SYSTEM:N
net stop wuauserv
sc config wuauserv start= disabled
pause

Win10右下角时间精确到秒

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowSecondsInSystemClock" /t REG_DWORD /d 1 /f
taskkill /f /im explorer.exe
start explorer
pause

文件名获取

  • 无序
@echo off
echo.
echo 请稍候……
echo.
for /f "delims=" %%a in ('dir /b') do echo %%a >>name.txt
echo 已在当前目录生成name.txt,包含当前目录的所有文件夹/文件名
echo.
echo 生成的信息中包含了文件名获取.bat,按需要删除!!!
echo.
pause
  • 按文件修改时间倒序获取
@echo off
echo.
echo 请稍候……
echo.
for /f "delims=" %%a in ('dir /b /o-d') do echo %%a >>dx_name.txt
echo 已在当前目录生成name.txt,包含当前目录的所有文件夹/文件名
echo.
echo 生成的信息中包含了文件名获取.bat,按需要删除!!!
echo.
pause
  • 按文件修改时间正序获取
@echo off
echo.
echo 请稍候……
echo.
for /f "delims=" %%a in ('dir /b /o:d') do echo %%a >>zx_name.txt
echo 已在当前目录生成name.txt,包含当前目录的所有文件夹/文件名
echo.
echo 生成的信息中包含了文件名获取.bat,按需要删除!!!
echo.
pause
  • 文件名获取并生成取消或隐藏bat文件
@echo off
rem 法一:dir /b *.*>>当前目录所有文件夹/文件名.txt
rem 法一、法二使用方法,将法一法二的命令保存到bat文件中即可
rem 法二:在获取的文件名前面增加数据,例如:
echo @echo off>>彻底隐藏文件.bat
for /f "delims=" %%a in ('dir /b') do echo attrib +s +r +h %~dp0%%a >>彻底隐藏文件.bat
echo attrib +s +r +h %~dp0取消文件彻底隐藏.bat>>彻底隐藏文件.bat
echo attrib -a -s -r -h %~dp0文件名获取并生成取消或隐藏bat文件.bat>>彻底隐藏文件.bat
echo pause>>彻底隐藏文件.bat
echo @echo off>>取消文件彻底隐藏.bat
for /f "delims=" %%a in ('dir /b') do echo attrib -a -s -r -h %~dp0%%a >>取消文件彻底隐藏.bat
echo pause>>取消文件彻底隐藏.bat
echo.
echo 操作完成……
echo.
pause

遍历当前文件夹下所有目录名字,包含子目录

@echo off
for /f "delims=" %%i in ('dir /ad/b/s "%~dp0"') do (echo "%%i") >> list.txt
pause

按文件格式批量修改文件名

@echo off
echo.
set /p i=请输入文件格式(即扩展名并以回车结束):
echo.
set /p o=请输入要改成的文件名字(以回车结束):
echo.
set a=0
setlocal EnableDelayedExpansion
for %%n in (*.%i%) do (
	set /A a+=1
	ren "%%n" "%o%!a!.%i%"
)
endlocal
echo 文件重命名成功!
echo.
pause

复制指定文件到某目录下

@echo off
set /p f=请输入起始文件夹:
set /p m=请输入目标文件夹:
set /p i=请输入文件格式:
pushd %f%
   for /r %%a in (*.%i%) do (
      XCOPY /Y "%%a" "%m%"
   )
popd
pause

去掉或恢复桌面快捷方式小箭头

  • 去掉小箭头
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /d "%systemroot%\system32\imageres.dll,197" /t reg_sz /f
taskkill /f /im explorer.exe
attrib -s -r -h "%userprofile%\AppData\Local\iconcache.db"
del "%userprofile%\AppData\Local\iconcache.db" /f /q
start explorer
pause
  • 恢复小箭头
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /f
taskkill /f /im explorer.exe
attrib -s -r -h "%userprofile%\AppData\Local\iconcache.db"
del "%userprofile%\AppData\Local\iconcache.db" /f /q
start explorer
pause

删除多个文件夹中的同名文件

@echo off
rem 第一个括号为盘符/路径以逗号隔开(或%~dp0),第二个括号为文件名(需要带后缀)以逗号隔开
for %%l in (c:) do cd /d %%l & for %%j in (filename1,filename2,filename3) do del %%j /a HS /F /S
pause

删除某个盘符或某个文件夹下的同名子文件夹

@echo off
rem C:\ 为盘符,也可以为某个文件夹(或%~dp0),括号内容为文件夹名字
for /d /r C:\ %%b in (*filename1,filename2,filename3*) do rd /s /q "%%b"
pause

删除我的电脑中的OneDrive

reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f

删除我的电脑中的WPS云文档

reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{5FCD4425-CA3A-48F4-A57C-B8A75C32ACB1}" /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{7AE6DE87-C956-4B40-9C89-3D166C9841D3}" /f

删除我的电脑中的百度云图标

reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{679F137C-3162-45da-BE3C-2F9C3D093F64}" /f

删除我的电脑中的微云图标

reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3B11AB24-9AF1-45f3-8998-9BCF061D13D8}" /f

修改系统OEM信息

  • 删除系统oem信息
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v LOGO /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v Manufacturer /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v Model /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v SupportHours /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v SupportPhone /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v SupportURL /f
  • 修改系统OEM信息
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v LOGO /t REG_SZ /d "C:\Windows\System32\oobe\mune.bmp" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v Manufacturer /t REG_SZ /d "MUNE" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v Model /t REG_SZ /d "Demo" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v SupportHours /t REG_SZ /d "24小时技术支持" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v SupportPhone /t REG_SZ /d "联系电话:18989898989        QQ:909090900" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /v SupportURL /t REG_SZ /d "https://cnxiaobai.com/" /f
@echo off
echo.
set log=%~dp0
copy %log%mune.bmp C:\Windows\System32\oobe\mune.bmp
echo.
echo 系统oem信息修改成功,右键点击计算机选择属性查看!
echo.
pause

Win10开机默认打开数字小键盘

reg add "HKEY_USERS\.DEFAULT\Control Panel\Keyboard" /v InitialKeyboardIndicators /d "80000002" /f

获取连接过的WiFi的密码

@echo off
echo.
echo 请稍后……
echo.
for /f "skip=9 tokens=1,2 delims=:" %%i in ('netsh wlan show profiles') do (@echo %%j | findstr -i -v echo | netsh wlan show profiles %%j key=clear >> %~dp0password.txt)
echo 已在%~dp0目录下生成password.txt,程序将自动打开password.txt
echo.
echo 或后期双击打开password.txt即可查看密码!
start %~dp0password.txt
echo.
pause

解决复制文件到C盘需要权限

icacls c:\ /setintegritylevel M
pause

解决 Windows 7 打开WLAN AutoConfig 服务错误:1747

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndisuio" /v DisplayName /t REG_SZ /d "NDIS Usermode I/O Protocol" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndisuio" /v Start /t REG_DWORD /d 2 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NDIS" /v ErrorControl /t REG_DWORD /d 1 /f
netsh winsock reset
@echo off
echo.
echo 配置成功!
echo.
pause

解决 PS2018 首选项出现要求96和8之间的整数

@echo off
reg add "HKEY_CURRENT_USER\Software\Adobe\Photoshop\120.0" /v OverridePhysicalMemoryMB /t REG_DWORD /d "131072" /f
pause

解决 Office 2010 打开出现配置

reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options" /v NoRereg /t REG_DWORD /d 1
@echo off
echo.
echo 修复成功,请重新打开office软件!
echo.
pause

图标缓存一键修复工具

taskkill /f /im explorer.exe
REM 清理系统图标缓存数据库
attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db"
del /f "%userprofile%\AppData\Local\IconCache.db"
attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db"
REM 清理 系统托盘记忆的图标
echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams
echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream
REM 重启Windows外壳程序explorer.exe
start explorer
REM 批处理代码结束
pasue

删除电脑中的空文件夹

  • 删除指定目录下所有空文件夹
@echo off
for /f "delims=" %%a in ('dir /ad /b /s F:^|sort /r') do (
	rd "%%a">nul 2>nul &&echo 空目录"%%a"成功删除!
)
pause
  • 删除多个磁盘的空文件夹
@echo off
for %%i in (c d e f) do (
	if exist %%i: (
	for /f "delims=" %%a in ('dir /ad /b /s "%%i:"^|sort /r') do (
		rd "%%a"
		)
	)
)
pause

© 版权声明
THE END
喜欢就支持一下吧
点赞0
评论 共1条

请登录后发表评论