我希望批处理能够根据zip文件自动创建文件夹。
zip文件有不同的名称,我想自动创建与这些文件同名的文件夹,并将它们全部移动到那里。
示例:
我有这些文件:
[Jungle] part 1.zip
[Jungle] part 2.zip
[Jungle] part 3.zip
[People] Of babies.zip
[People] Of people.zip
[Animals] From the sea.zip
[Animals] Furry.zip
包含“[Jungle]”的所有文件都会创建一个名为“Jungle”的文件夹 他们被转移到那里。
包含“[People]”的所有文件都会创建一个名为“People”的文件夹 被移到那里。
答案 0 :(得分:0)
基于[folder] etc.zip
。
@echo off
setlocal
for %%A in ("[*]*.zip") do call :movefile "%%~A"
goto :eof
:movefile
setlocal
for /f "delims=]" %%A in ("%~1") do (set "folder=%%~A") & goto :next
:next
set "folder=%folder:~1%"
if not exist "%folder%" md "%folder%"
move "%~1" "%folder%"
goto :eof
for
循环搜索与[*]*.zip
模式匹配的文件
并在找到的每个文件上调用:movefile
标签。文件名
作为参数传递给%1
的第一个参数。
%~1
剥去外部引号,以便将其放在新的外部引号中。
:movefile标签中的for
循环用{分隔} "%~1"
字符串
字符]
。变量folder
将被设置为第一个标记。
goto :next
确保只完成一个循环。
%folder:~1%
是%folder%
的值,没有[
的第一个字符。
如果文件夹不存在,则创建该文件夹,然后将文件移动到该文件夹中。