需要一个 BAT 文件来复制和重命名特定树中的所有文件
Need a BAT file to copy & rename all files in specific tree
我需要通过多层目录创建 运行s 的 .bat...复制某些包含以下后缀的文件:'.full.jpg' 以另存为 '.jpg'
我尝试过的:
copy /y "C:\Users\myname\Desktop\maindir\*.full.jpg" "C:\Users\myname\Desktop\maindir\*.jpg"
但是,我无法让它工作。
.bat 位于 'maindir' 目录中,运行 来自终端 (cmd)。
这是一个与我的场景非常接近的示例场景:
现有文件:
C:\Users\myname\Desktop\maindir\a\a\picture1.full.jpg
C:\Users\myname\Desktop\maindir\a\a\picture3.full.jpg
C:\Users\myname\Desktop\maindir\a\b\picturea.full.jpg
C:\Users\myname\Desktop\maindir\a\b\pic1.full.jpg
C:\Users\myname\Desktop\maindir\b\a\foto.full.jpg
C:\Users\myname\Desktop\maindir\b\a\photo.full.jpg
C:\Users\myname\Desktop\maindir\b\b\pic1.full.jpg
C:\Users\myname\Desktop\maindir\b\c\pi2.full.jpg
需要示例输出:
C:\Users\myname\Desktop\maindir\a\a\picture1.full.jpg
C:\Users\myname\Desktop\maindir\a\a\picture1.jpg
C:\Users\myname\Desktop\maindir\a\a\picture3.full.jpg
C:\Users\myname\Desktop\maindir\a\a\picture3.jpg
C:\Users\myname\Desktop\maindir\a\b\picturea.full.jpg
C:\Users\myname\Desktop\maindir\a\b\picturea.jpg
C:\Users\myname\Desktop\maindir\a\b\pic1.full.jpg
C:\Users\myname\Desktop\maindir\a\b\pic1.jpg
C:\Users\myname\Desktop\maindir\b\a\foto.full.jpg
C:\Users\myname\Desktop\maindir\b\a\foto.jpg
C:\Users\myname\Desktop\maindir\b\a\photo.full.jpg
C:\Users\myname\Desktop\maindir\b\a\photo.jpg
C:\Users\myname\Desktop\maindir\b\b\pic1.full.jpg
C:\Users\myname\Desktop\maindir\b\b\pic1.jpg
C:\Users\myname\Desktop\maindir\b\c\pi2.full.jpg
C:\Users\myname\Desktop\maindir\b\c\pi2.jpg
对于这方面的任何帮助,我将不胜感激,因为我还无法做到这一点。我将 运行 跨越一个目录结构,其中顶级目录将包含 15 多个目录,每个目录包含 20 多个目录,每个最低目录中有 100 多个文件。
谢谢。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=u:\Users\myname\Desktop\maindir"
FOR /r "%sourcedir%" %%a IN (*.full.jpg) DO (
FOR %%b IN ("%%~dpna") DO ECHO(COPY "%%a" "%%~dpnb.jpg"
)
GOTO :EOF
内部 for
仅检查 %%a
中完整文件名的驱动器路径名(即删除 .jpg
)并提供驱动器路径名该名称(即删除 .full
),您添加 .jpg
并完成工作。
您需要更改 sourcedir
的设置以适合您的情况。
所需的 COPY 命令仅 ECHO
用于测试目的。 确认命令正确后,将ECHO(COPY
更改为COPY
以实际复制文件。
我需要通过多层目录创建 运行s 的 .bat...复制某些包含以下后缀的文件:'.full.jpg' 以另存为 '.jpg'
我尝试过的:
copy /y "C:\Users\myname\Desktop\maindir\*.full.jpg" "C:\Users\myname\Desktop\maindir\*.jpg"
但是,我无法让它工作。
.bat 位于 'maindir' 目录中,运行 来自终端 (cmd)。
这是一个与我的场景非常接近的示例场景:
现有文件:
C:\Users\myname\Desktop\maindir\a\a\picture1.full.jpg
C:\Users\myname\Desktop\maindir\a\a\picture3.full.jpg
C:\Users\myname\Desktop\maindir\a\b\picturea.full.jpg
C:\Users\myname\Desktop\maindir\a\b\pic1.full.jpg
C:\Users\myname\Desktop\maindir\b\a\foto.full.jpg
C:\Users\myname\Desktop\maindir\b\a\photo.full.jpg
C:\Users\myname\Desktop\maindir\b\b\pic1.full.jpg
C:\Users\myname\Desktop\maindir\b\c\pi2.full.jpg
需要示例输出:
C:\Users\myname\Desktop\maindir\a\a\picture1.full.jpg
C:\Users\myname\Desktop\maindir\a\a\picture1.jpg
C:\Users\myname\Desktop\maindir\a\a\picture3.full.jpg
C:\Users\myname\Desktop\maindir\a\a\picture3.jpg
C:\Users\myname\Desktop\maindir\a\b\picturea.full.jpg
C:\Users\myname\Desktop\maindir\a\b\picturea.jpg
C:\Users\myname\Desktop\maindir\a\b\pic1.full.jpg
C:\Users\myname\Desktop\maindir\a\b\pic1.jpg
C:\Users\myname\Desktop\maindir\b\a\foto.full.jpg
C:\Users\myname\Desktop\maindir\b\a\foto.jpg
C:\Users\myname\Desktop\maindir\b\a\photo.full.jpg
C:\Users\myname\Desktop\maindir\b\a\photo.jpg
C:\Users\myname\Desktop\maindir\b\b\pic1.full.jpg
C:\Users\myname\Desktop\maindir\b\b\pic1.jpg
C:\Users\myname\Desktop\maindir\b\c\pi2.full.jpg
C:\Users\myname\Desktop\maindir\b\c\pi2.jpg
对于这方面的任何帮助,我将不胜感激,因为我还无法做到这一点。我将 运行 跨越一个目录结构,其中顶级目录将包含 15 多个目录,每个目录包含 20 多个目录,每个最低目录中有 100 多个文件。
谢谢。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=u:\Users\myname\Desktop\maindir"
FOR /r "%sourcedir%" %%a IN (*.full.jpg) DO (
FOR %%b IN ("%%~dpna") DO ECHO(COPY "%%a" "%%~dpnb.jpg"
)
GOTO :EOF
内部 for
仅检查 %%a
中完整文件名的驱动器路径名(即删除 .jpg
)并提供驱动器路径名该名称(即删除 .full
),您添加 .jpg
并完成工作。
您需要更改 sourcedir
的设置以适合您的情况。
所需的 COPY 命令仅 ECHO
用于测试目的。 确认命令正确后,将ECHO(COPY
更改为COPY
以实际复制文件。