批处理文件从多个源复制文件,并通过删除最后33个字符重命名它

时间:2016-06-08 05:32:51

标签: batch-file batch-rename

我有批处理文件需要从3个不同来源复制3个最后修改过的文件,需要通过删除最后33个字符来重命名。

我在2个文件中创建了它,但是当我将两个代码放在一起时,从som原因开始...

我的代码:

@echo off

set folderpath=C:\Users\tzahi.k\Desktop\testSource\des

for /F "delims=" %%a in ('dir  /b /od "C:\Users\tzahi.k\Desktop\testSource\source\*.txt"') do set Youngest=%%a

xcopy /y "C:\Users\tzahi.k\Desktop\testSource\source\%Youngest%" %folderpath%


for /F "delims=" %%a in ('dir  /b /od "C:\Users\tzahi.k\Desktop\testSource\source2\*.txt"') do set Youngest=%%a

xcopy /y "C:\Users\tzahi.k\Desktop\testSource\source2\%Youngest%" %folderpath%

cd %folderpath%
for /f %%a in ('dir /b "%folderpath%\*.txt"') do (
   set "fname=%%~na"
   ren "%%a" "!fname:~0,-33!.txt"
)


pause

当我将代码分成2个文件时,它可以工作,但我希望它在一个... 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我用了 setlocal EnableDelayedExpansion 它的工作原理