第1个回答 2023-03-24
假设你使用的是 Windows 操作系统,可以使用以下的批处理命令将当前文件夹内的图片移动到图片名称包含文件夹名称的文件夹内:
bashCopy code@echo offfor %%i in (*.jpg *.jpeg *.png *.gif) do ( for /f "delims=" %%j in ("%%~ni") do ( if not exist "%%j" mkdir "%%j"
move "%%i" "%%j\"
)
)
这个命令会遍历当前文件夹内的所有 JPG、JPEG、PNG 和 GIF 图片文件,并将文件名中包含的文件夹名称提取出来,然后创建一个以该名称命名的文件夹(如果不存在的话),最后将该图片移动到该文件夹内。
请注意,这个命令只适用于文件名包含文件夹名称的情况,如果文件名不包含文件夹名称,那么它们将不会被移动到任何文件夹内。此外,如果文件夹名称中包含特殊字符,例如空格、符号等,则可能会出现错误。
第2个回答 2023-03-24
@echo off
setlocal enabledelayedexpansion
for %%i in (*.jpg *.jpeg *.png *.bmp *.gif) do (
set "filename=%%~ni"
set "foldername=!filename: =_!"
md "!foldername!" 2>nul
move "%%i" "!foldername!\"
)
echo All images have been moved to their respective folders.
pause
将上述代码保存为.bat文件,将其放置到包含图片的文件夹中,并运行该脚本。脚本将遍历该文件夹中的所有.jpg、.jpeg、.png、.bmp和.gif文件,并将它们移动到以文件名(不包括扩展名)命名的文件夹中。如果文件名中包含空格,则在创建文件夹时将空格替换为下划线。移动文件和创建文件夹时,2>nul将错误消息输出重定向到nul设备,以便在文件夹已存在的情况下避免显示错误消息。
请注意,在运行脚本之前,最好备份您的图片文件,以防意外删除或移动文件。
第3个回答 2023-03-24
可以使用以下批处理命令将当前文件夹内的图片移动到图片名称包含文件夹名称的文件夹内:
@echo off
for %%f in (*.jpg *.png *.gif) do (
set filename=%%~nf
set foldername=!filename:_=!
if not exist !foldername! mkdir !foldername!
move "%%f" "!foldername!\"
)
这个批处理命令会遍历当前文件夹内的所有后缀为 .jpg、.png、.gif 的图片文件,并将每个文件移动到一个以图片名称中下划线替换为空格的文件夹中。例如,如果有一个名为 my_image_name.png 的图片文件,它将被移动到一个名为 my image name 的文件夹中。
需要注意的是,这个命令只会遍历当前文件夹内的文件,如果您需要遍历子文件夹内的文件,可以使用 for /r 命令来实现。
第4个回答 2023-03-24
for /r %f in (*.jpg,*.png) do @if exist "%~dpnf" move "%f" "%~dpnf"
该命令使用了 FOR 命令和 IF 命令。FOR 命令用于遍历当前文件夹及其子文件夹中的所有 jpg 和 png 图片文件,IF 命令用于判断图片名称是否包含文件夹名称。如果包含,就将图片移动到对应的文件夹内。
将命令保存为 .bat 文件,例如 move_images.bat。
将 .bat 文件复制到需要处理的图片所在的文件夹内。
双击 .bat 文件运行即可。
需要注意的是,该命令会将当前文件夹及其子文件夹中所有符合条件的图片文件移动到对应的文件夹内,因此请谨慎操作,以免不小心移动了不应该移动的文件