2016-06-08 21 views
0

Ich habe Batch-Datei, die 3 zuletzt geänderte Dateien aus 3 verschiedenen Quellen kopieren müssen und müssen sie durch Entfernen der letzten 33 Zeichen umbenennen.Batch-Datei kopieren Sie Dateien aus mehreren Quellen und benennen Sie sie durch Entfernen der letzten 33 Zeichen

ich machte es in 2 Dateien aber aus som Grund, wenn ich beide Codes zusammen seine nicht funktioniert ...

mein Code:

@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 

, wenn ich den Code in zwei Dateien aufgeteilt es funktioniert aber ich will es in einem ... irgendeinen Vorschlag?

+0

verzögerten Expansion ermöglichen und versuchen, und einige Echo-Anweisungen zwischen Ihrem Code hinzufügen, um zu überprüfen, ob Variablen korrekt immer aktualisiert werden. – prudviraj

+0

danke ... funktioniert gut –

+0

Was meinst du mit "nicht funktioniert"? Bitte geben Sie eine detaillierte Beschreibung von [edit] (http://stackoverflow.com/posts/37693963/edit) in Ihrem Post; Im Allgemeinen empfehle ich, * all * file/dir. Pfade zwischen '' '' (siehe 'xcopy's Ziel) und benutze die in Anführungszeichen gesetzte' set'-Syntax 'set" VAR = Value "' ... – aschipfl

Antwort

0

i verwenden setlocal EnableDelayedExpansion und es funktioniert