分享自用bat批量处理 文件改名 移动文件 分批文件
当前子目录文件移动到目录for /f "tokens=* delims=" %%i in ('dir /b /a-d /s "*"') do (move "%%i" "%%~dpi./../")
pause
添加其所在文件夹的名称前缀
@echo off
rem 在多个子文件夹里的jpg文件的名称前面/开头添加其所在文件夹的名称前缀
mode con lines=3000
set "folder=D:\天翼云盘下载\新建文件夹"
if not exist "%folder%" (echo;"%folder%" no found&goto end)
if "%folder:~-1%" equ "\" set "folder=%folder:~,-1%"
for /f "delims=" %%a in ('dir /ad/b "%folder%\"') do (
pushd "%folder%\%%~nxa\"
for /f "delims=" %%b in ('dir /a-d/b *.jpg 2^>nul') do (
echo;"%%~nxa\%%~nxb" --^> "%%~nxa_%%~nxb"
ren "%%b" "%%~nxa_%%~nxb"
)
popd
)
:end
echo;%#% +%$%%$%/%@% %z%
pause
exit
文件新建文件夹并取名
md tbwind
for %%f in (*.*) do md tbwind\%%f
for %%f in (*.*) do move %%f tbwind\%%f\
xcopy tbwind\*.* /s
rd tbwind /s/q
去掉小箭头
/* ---去掉小箭头----*/
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
复制上面的代码。新建一个文本文件。粘贴后另存为.bat文件,然后以管理员身份打开。
ok!
/* ---恢复小箭头----*/
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
同理,将上述代码另存为.bat文件,管理员身份打开。就可恢复小箭头了。
目录中文件移出
@echo off
set son=%cd%
@rem 获取上级目录,暂时没使用到
pushd %son%
cd ..
set parent=%cd%
popd
for /d %%i in (*) do (
move /y %son%\%%i\*.* %son%
rd %son%\%%i
)
@Rem pause
清理文件
@echo off
pause
echo 正在清理系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清理系统垃圾完成!
echo. & pause
win10图片查看器
Windows Registry Editor Version 5.00
; Change Extension's File Type
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
@="PhotoViewer.FileAssoc.Tiff"
; Change Extension's File Type
@="PhotoViewer.FileAssoc.Tiff"
多文件批量分成多个小文件夹
@echo off&setlocal enabledelayedexpansion
::文件分类管理:按每5个文件装进一个文件夹整理。move为移动 copy为复制
echo;&echo; 开始整理……&echo;
set newf=0
set numf=0
set conf=0
if not exist New!newf! md New!newf!
for /f "tokens=*" %%a in ('dir /b /a-d') do (
if !numf! geq 5 set numf=0&set /a newf+=1&md New!newf!
if not "%%~na"=="%~n0" move "%%~a" New!newf!&set /a numf+=1
set /a conf=!newf!*5+!numf!
)
echo;&echo; 整理完成,共 !conf! 个文件,请注意检查!&pause>nul 柠檬派 发表于 2021-11-25 13:06
楼主能帮忙写一个批处里吗?
以管理员方式运行bat,
bat内容是从B文件夹(\\10.142.164.240【账号密码都是 ...
转载论坛大佬写的,找不到地址了。你可以试试这个
import hashlib
def md5(file_path):
#------判断文件的MD5-------↓
if os.path.isdir(file_path):
return '1'
read_file=open(file_path,mode='r',errors='ignore')
the_hash=hashlib.md5()
for line in read_file.readlines():
the_hash.update(line.encode('utf8'))
read_file.close()
return the_hash.hexdigest()
import os
import shutil
def directory(dir_name1,dir_name2):#同步目录 备份目录
#-------克隆同步目录结构到备份目录--------↓
dir1_list=[]
for path,dirs,files in os.walk(dir_name1):
# print(path,dirs,files)
dir1_list.append(path)
a=len(dir1_list[0])
for i in range(len(dir1_list)):
if os.path.exists(dir_name2+dir1_list) is False:
os.mkdir(dir_name2+dir1_list)
dir2_list=[]
for path,dirs,files in os.walk(dir_name2):
dir2_list.append(path)
a=len(dir2_list[0])
for i in range(len(dir2_list)):
if os.path.exists(dir_name1+dir2_list) is False:
os.rmdir(dir2_list)
#-------判断同步目录哪些文件变更,复制到备份目录--------↓
dir1_root=None
for path,dirs,files in os.walk(dir_name1):
if dir1_root is None:
dir1_root=path
trimmed_path=path[len(dir1_root):]
# print(trimmed_path,files)
if files!=[]:
for i in range(len(files)):
file1=os.path.join(dir_name1+trimmed_path+os.path.sep,files)
file2=os.path.join(dir_name2+trimmed_path+os.path.sep,files)
if os.path.exists(file2) is True:
if md5(file1) != md5(file2):
shutil.copy(file1,file2)
else:
shutil.copy(file1,file2)
#-------删除备份目录比同步目录多出来的文件--------↓
dir2_root=None
for path,dirs,files in os.walk(dir_name2):
if dir2_root is None:
dir2_root=path
trimmed_path=path[len(dir2_root):]
#print(trimmed_path,files)
if files!=[]:
for i in range(len(files)):
if os.path.exists(dir_name1+trimmed_path+os.path.sep+files) is False:
os.remove(dir_name2+trimmed_path+os.path.sep+files)
directory('//10.142.164.240/','D:\\A')
guols-cracker 发表于 2021-11-24 20:14
楼主能帮忙写一个批处里吗?
在指定的路径文件夹里,搜索指定的文件是否存在,并提示忽略或删除
我今天照着网上写了一个,自动删除服务器日志文件夹里的.log文件,明天回您 顶一下!!! 不错,可以参考,感谢 天哪,我还是写代码实现吧,还是更习惯python脚本或nodejs 这个真不错 非常喜欢批处理,但一直没遇到好的教学方式,感谢分享成品,且都是工作实务中需要的 非常实用的批处理,谢谢分享 非常实用的分享{:1_893:}{:1_893:}{:1_893:}谢谢 楼主能帮忙写一个批处里吗?
在指定的路径文件夹里,搜索指定的文件是否存在,并提示忽略或删除