пакетный файл копирует файлы из нескольких источников и переименовывает их, удаляя последние 33 символа

У меня есть пакетный файл, в котором нужно скопировать 3 последних измененных файла из 3 разных источников, и мне нужно переименовать его, удалив последние 33 символа.

я сделал это в 2 файлах, но по какой-то причине, когда я объединил оба кода, он не работает...

мой код:

@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 файла, он работает, но я хочу, чтобы он был в одном... есть предложения?


person Tzahi Kadosh    schedule 08.06.2016    source источник
comment
включите отложенное расширение и попробуйте и добавьте несколько операторов эха между вашим кодом, чтобы проверить, правильно ли обновляются переменные.   -  person prudviraj    schedule 08.06.2016
comment
спасибо...работает хорошо   -  person Tzahi Kadosh    schedule 08.06.2016
comment
Что вы имеете в виду под не работает? предоставьте подробное описание, редактируя свое сообщение; вообще рекомендую ставить все файл/каталог. пути между "" (см. пункт назначения xcopy) и используйте синтаксис set в кавычках set "VAR=Value"...   -  person aschipfl    schedule 08.06.2016


Ответы (1)


я использую setlocal EnableDelayedExpansion, и это работает

person Tzahi Kadosh    schedule 13.06.2016