通过批处理命令,将当前文件夹内的图片移动到图片名称包含文件夹名称的文件夹内?

如题所述

可以使用以下批处理命令来实现将当前目录下的所有图片移动到包含文件夹名称的文件夹内:
```
@echo off
setlocal EnableDelayedExpansion
for %%a in (*.jpg *.png *.bmp) do (
set filename=%%~na
for /d %%b in (*) do (
if "!filename:%%b=!" neq "!filename!" (
move "%%a" "%%~b"
)
)
)
echo 图片已全部移动到对应文件夹中!
pause
```
这个脚本使用两个`for`循环来遍历当前目录下的文件和文件夹。对于每个图片文件,它会提取文件名并将其存储在一个变量中。然后它会再次遍历所有文件夹,并检查文件名中是否包含该文件夹名称。如果是,则将该图片文件移动到该文件夹内。
需要注意的是,这个脚本只会移动`.jpg`、`.png`和`.bmp`格式的图片文件,你可以根据需要调整文件类型过滤器。另外,执行前请先备份文件,以防出现意外情况。
温馨提示:答案为网友推荐,仅供参考
第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 文件运行即可。
需要注意的是,该命令会将当前文件夹及其子文件夹中所有符合条件的图片文件移动到对应的文件夹内,因此请谨慎操作,以免不小心移动了不应该移动的文件
相似回答
大家正在搜