批处理 Windows - 如何创建一个循环来重命名不同文件夹中的许多文件?
Batch Windows - How to create a loop to rename many files in different folders?
我有一个 PDF 文件(都在同一个文件夹中),我需要从文件名中提取 3 个有用的信息。
我在另一个位置有 .jpg 文件(每个文件夹 1 张图片),我需要使用从 PDF 中获取的这些信息重命名。
我的脚本能够找到信息、存储和重命名,但它只适用于目录中的第一个文件,然后停止。
我需要循环 运行 直到没有更多的 PDF 文件可以从中获取信息或者没有更多的 .jpg 文件可以重命名。
有人可以帮我循环制作这个脚本 运行 吗?
echo off
setLocal EnableDelayedExpansion
rem User input
SET /P datework= Please type the date you want to work (format yyyymmdd):
rem Folder where the PDFs are located - extract the useful information from file name
cd /D C:\Users\A\Desktop\A_tests\QC\PDF\%datework%\
for %%i in (*.pdf) do (
set RcvLn=%%i
set RcvLn=!RcvLn:~0,4!
set GunStn=%%i
set GunStn=!GunStn:~5,4!
set Node=%%i
set Node=!Node:~10,4!
)
rem Rename the pictures using the values stored on the variables
xcopy /Y "C:\Users\A\Desktop\A_tests\QC\UHD73\Node Deployment\%datework%\Node %Node%\*.jpg" "C:\Users\A\Desktop\A_tests\QC\UHD73\Node Deployment\%datework%\Node%Node%_RL%RcvLn%_GS%GunStn%.jpg"
您在循环内为每个文件设置每个变量,然后在循环外执行 xcopy,这只会执行一次 xcopy。所以我们宁愿在循环中执行 xcopy。
echo off
setLocal EnableDelayedExpansion
rem User input
SET /P datework= Please type the date you want to work (format yyyymmdd):
rem Folder where the PDFs are located - extract the useful information from file name
cd /D C:\Users\A\Desktop\A_tests\QC\PDF\%datework%
for %%i in (*.pdf) do (
set RcvLn=%%i
set RcvLn=!RcvLn:~0,4!
set GunStn=%%i
set GunStn=!GunStn:~5,4!
set Node=%%i
set Node=!Node:~10,4!
echo xcopy /Y "C:\Users\A\Desktop\A_tests\QC\UHD73\Node Deployment\!datework!\Node !Node!\*.jpg" "C:\Users\A\Desktop\A_tests\QC\UHD73\Node Deployment\!datework!\Node!Node!_RL!RcvLn!_GS!GunStn!.jpg"
)
我有一个 PDF 文件(都在同一个文件夹中),我需要从文件名中提取 3 个有用的信息。
我在另一个位置有 .jpg 文件(每个文件夹 1 张图片),我需要使用从 PDF 中获取的这些信息重命名。
我的脚本能够找到信息、存储和重命名,但它只适用于目录中的第一个文件,然后停止。 我需要循环 运行 直到没有更多的 PDF 文件可以从中获取信息或者没有更多的 .jpg 文件可以重命名。
有人可以帮我循环制作这个脚本 运行 吗?
echo off
setLocal EnableDelayedExpansion
rem User input
SET /P datework= Please type the date you want to work (format yyyymmdd):
rem Folder where the PDFs are located - extract the useful information from file name
cd /D C:\Users\A\Desktop\A_tests\QC\PDF\%datework%\
for %%i in (*.pdf) do (
set RcvLn=%%i
set RcvLn=!RcvLn:~0,4!
set GunStn=%%i
set GunStn=!GunStn:~5,4!
set Node=%%i
set Node=!Node:~10,4!
)
rem Rename the pictures using the values stored on the variables
xcopy /Y "C:\Users\A\Desktop\A_tests\QC\UHD73\Node Deployment\%datework%\Node %Node%\*.jpg" "C:\Users\A\Desktop\A_tests\QC\UHD73\Node Deployment\%datework%\Node%Node%_RL%RcvLn%_GS%GunStn%.jpg"
您在循环内为每个文件设置每个变量,然后在循环外执行 xcopy,这只会执行一次 xcopy。所以我们宁愿在循环中执行 xcopy。
echo off
setLocal EnableDelayedExpansion
rem User input
SET /P datework= Please type the date you want to work (format yyyymmdd):
rem Folder where the PDFs are located - extract the useful information from file name
cd /D C:\Users\A\Desktop\A_tests\QC\PDF\%datework%
for %%i in (*.pdf) do (
set RcvLn=%%i
set RcvLn=!RcvLn:~0,4!
set GunStn=%%i
set GunStn=!GunStn:~5,4!
set Node=%%i
set Node=!Node:~10,4!
echo xcopy /Y "C:\Users\A\Desktop\A_tests\QC\UHD73\Node Deployment\!datework!\Node !Node!\*.jpg" "C:\Users\A\Desktop\A_tests\QC\UHD73\Node Deployment\!datework!\Node!Node!_RL!RcvLn!_GS!GunStn!.jpg"
)