Arbeiten an einer Batch-Datei, aber kein Glück :(Batchdatei zu löschen Dateien aus dem Ordner, deren Dateinamen nicht in der XML erwähnt aus den vergangenen 2 Tage Datei
Ich bin in der Notwendigkeit eines Skripts (Bat), die löscht alle Projekte (meist vb), die nicht in meiner Build-Liste (xml) erwähnt sind
ZB: Ich habe einen Ordner namens C: \ 123, der ungefähr 15 Dateien enthält Ich habe eine Build-Liste (XML-Datei) welche hat 10 Dateinamen, die dort in C: \ 123 sind. Jetzt will ich ein Batchdateiskript, das die restlichen 5 Dateien von C: \ 123 löscht, die in der xml-Datei nicht dort sind.
Irgendein h elp wird sehr geschätzt! Skript versucht, 2 Ordner zu vergleichen und die identischen Dateien löschen ersten (Gedanke daran später zwicken nach meinem Bedürfnis, aber das hat nicht funktioniert)
@ECHO OFF
SET LOCALFOLDER=C:\123
SET OTHERFOLDER=D:\123
Pause
:LOCALKEYTEMP
SET FILE=DONE
:: THIS LINE SCANS THE LOCAL FOLDER FOR FILES,
:: WE CAN USE THIS TO SCAN SEPERATE FILES ONE AT A
TIME
FOR /F "TOKENS=*" %%G IN ('DIR/B ^"%LOCALFOLDER%
\*.*^"') DO SET FILE=%%G
Pause
ECHO %FILE%
pause
IF %FILE%==DONE GOTO END
pause
ECHO N|COMP "%LOCALFOLDER%\%FILE%"
"%OTHERFOLDER%\%FILE%" | FIND "FILES COMPARE OK" >
NUL
pause
IF ERRORLEVEL 1 GOTO DIFFERENTKEYS
IF ERRORLEVEL 0 GOTO DELETEBOTH
pause
DELETEBOTH
DEL /Q "%LOCALFOLDER%\%FILE%"
DEL /Q "%OTHERFOLDER%\%FILE%"
GOTO LOCALKEYTEMP
DIFFERENTKEYS
:: THIS LINE DELETES THE LOCAL FOLDERS FILES WHICH IS
NECCESSARY FOR THIS SCRIPT
DEL /Q "%LOCALFOLDER%\%FILE%"
GOTO LOCALKEYTEMP
:END
ECHO ALL FILES SHOULD BE DELETED FROM
%LOCALFOLDER%
pause
ECHO ALL DIFFERENT FILES SHOULD BE LEFT ON
%OTHERFOLDER%
PAUSE
EXIT
XML-Datei wie folgt aussieht:
<ProjectsToBuild>
<Project>C:\123\Clients\Direct\App1.vbproj</Project>
<Project>C:\123\Clients\Direct\App2.vbproj</Project>
</ProjectsToBuild>
Ergebnis des Aacini-Stapel-Skripts:
Press any key to continue . . .
List of existent files:
fileName[D:\123\Subfolder1\a1.txt.txt]=1
fileName[D:\123\Subfolder1\a2.txt.txt]=1
fileName[D:\123\Subfolder1\a3.txt.txt]=1
fileName[D:\123\Subfolder1\a4.txt.txt]=1
fileName[D:\123\Subfolder1\buildList.xml]=1
fileName[D:\123\Subfolder2\a1.txt.txt]=1
fileName[D:\123\Subfolder2\a2.txt.txt]=1
fileName[D:\123\Subfolder2\a3.txt.txt]=1
fileName[D:\123\Subfolder2\a4.txt.txt]=1
fileName[D:\123\Subfolder2\buildList.xml]=1
Press any key to continue . . .
Keep these files:
Press any key to continue . . .
Remove these files:
Press any key to continue . . .
Press any key to continue . . .
Das löscht alle Dateien in dem Ordner.
Sie müssen uns zwei Dinge zur Verfügung stellen. 1) Was Sie bisher versucht haben und 2) Wie Ihre Build-Liste aussieht. – adarshr
@adarshhr Danke für Ihre Antwort Adarsh..Ich habe versucht, den Inhalt von zwei Ordnern zu vergleichen und die identischen Dateien zuerst zu löschen. dachte daran, es später nach meinem Bedarf zu optimieren. aber das scheint nicht für mich zu funktionieren –
Können Sie zeigen, wie das XML aussieht? Tut mir leid, ich kann dir nicht helfen, ohne das zu sehen. – adarshr