如何根据文件名创建文件夹,然后移动到文件夹
How to create folders based on file names and then move them to the folders
我想要一个基于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" 的文件夹,并且
搬到那里了。
基于 [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%
的值,去掉了 [
的第一个字符。
如果文件夹不存在,则创建文件夹,然后将文件移动到文件夹中。
我想要一个基于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" 的文件夹,并且 搬到那里了。
基于 [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%
的值,去掉了 [
的第一个字符。
如果文件夹不存在,则创建文件夹,然后将文件移动到文件夹中。