我有以下批处理文件代码,当在文件夹中运行时,检查文件扩展名,根据文件扩展名创建文件夹,最后将文件移动到具有扩展名的文件夹名称,即它将创建.gif
文件夹将所有GIF移入其中.jpg
文件夹将所有jpg移动到其中等等。
我没有编写批处理文件的专业知识,但我需要的是以这样一种方式更改此代码:所有文件都可以进入文件夹,以便所有图像文件都进入"图像&# 34;文件夹,所有视频文件,#34;视频",Docs文件夹中的所有文档文件(pdf,docs,xls等),所有音频文件都应该在Audio文件夹中......等等...... 有人可以帮忙???
@echo off
rem For each file in your folder
for %%a in (".\*") do (
rem check if the file has an extension and if it is not our script
if "%%~xa" NEQ "" if "%%~dpxa" NEQ "%~dpx0" (
rem check if extension folder exists, if not it is created
if not exist "%%~xa" mkdir "%%~xa"
rem Move the file to directory
move "%%a" "%%~dpa%%~xa\"
))
@compo与类别有关的文件类型如下: -
Docs
.docs,docx,xls,pdf
Video
.avi,.mpeg,.mp4
Audio
.mp3,.wma
Image
.jpg,.bmp,.gif
依旧......
类别名称实际上应该是文件夹名称。
答案 0 :(得分:0)
@echo off
for %%s in (Images Videos Docs Audio) do md .\%%s 2>nul
rem For each file in your folder
for %%a in (".\*") do (
set "moved="
rem check if the file has an extension and if it is not our script
if "%%~xa" NEQ "" if "%%~dpxa" NEQ "%~dpx0" (
for %%s in (pdf doc xls) do if /i "%%~xa"==".%%s" set "moved=Y"&move "%%a" ".\Docs\"
for %%s in (mpg avi) do if /i "%%~xa"==".%%s" set "moved=Y"&move "%%a" ".\Videos\"
IF NOT DEFINED moved (
rem check if extension folder exists, if not it is created
if not exist "%%~xa" mkdir "%%~xa"
rem Move the file to directory
move "%%a" "%%~dpa%%~xa\"
)
)
)
注意:MD ... 2>nul
在无法创建目录时(因为它已经存在)禁止显示错误消息
首先,创建保存集合的目录。
对于每个文件,首先将moved
设置为 nothing (即“清除”它以使其未定义)
然后以不区分大小写的方式(/ i)检查扩展名,以查找要放入集合中的扩展名列表。如果找到匹配项,请将moved
设置为某个值(如Y
)并移至相应的集合。检查完所有收集列表后,如果moved
仍然是没有(即未定义),则将文件移动到扩展名确定的目录。
(未测试的)
答案 1 :(得分:0)
由于您的商家信息很小,您可能只需将信息添加到脚本文件中,而不是单独的文件:
@For /F "Tokens=1*Delims=:" %%A In ('FindStr/B : %0'
) Do @RoboCopy/MOV . "%%A"%%B>Nul
@Exit/B
:Docs: *.doc *.docx *.xls *.pdf
:Video: *.avi *.mpeg *.mp4
:Audio: *.mp3 *.wma
:Image: *.jpg *.bmp *.gif
根据需要编辑最后四行,这样做应该是不言自明的。
修改强>
使用单独的文件 FileCats.txt :
Docs: *.doc *.docx *.xls *.pdf
Video: *.avi *.mpeg *.mp4
Audio: *.mp3 *.wma
Image: *.jpg *.bmp *.gif
...和批处理文件 Categorise.cmd :
@For /F "UseBackQTokens=1*Delims=:" %%A In ("FileCats.txt"
) Do @RoboCopy/MOV . "%%A"%%B>Nul
确保 :