Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Kompliziertes Dateien löschen oder wie krieg ich dir s b mit relativen Pfaden?

Frage Entwicklung Batch & Shell

Mitglied: Ruflet

Ruflet (Level 1) - Jetzt verbinden

20.09.2007, aktualisiert 24.09.2007, 3536 Aufrufe, 2 Kommentare

Hallo zusammen,

hab mich grad hier registriet weil ich heute seit 3 stunden schon mit den dos FOR befehlen rumkämpfe. ich schaff in nem kleinen unternehmen als software entwickler.
ich muss eine batchdatei schreiben mit der ich alle dateien die auf sagen wir mal X: nicht mehr existieren auf Y: auch lösche.


erstellt also bitte mal ne .bat datei (nennen wir sie mal create.bat und kopiert folgenden inhalt hinein
md folder1
md folder2
cd folder1
echo That is the content of the File 1 >File1.txt
echo That is the content of the File 2 >File2.txt
echo That is the content of the File 3 >File3.txt
echo That is the content of the File 4 >File4.txt
md subfolder1
cd subfolder1
echo That is the content of the SubFile 1 >SubFile1.txt
echo That is the content of the SubFile 2 >SubFile2.txt
echo That is the content of the SubFile 3 >SubFile3.txt
cd..
cd..
cd folder2
copy ..\folder1 >nul
del file2.txt
md subfolder1
cd subfolder1
copy ..\..\folder1\subfolder1
del SubFile2.txt
cd..
cd ..
dann eine batch datei nennen wir sie mal mydel.bat mit folgendem inhalt


@echo off
echo Quelle: %1
echo Ziel: %2
for /f "tokens=*" %%i in ('dir /b %2') do if not exist "%1\%%i" echo Loesche Datei

%%i im ZielOrdner

ok geht zur kommandozeile und startet die create.bat
es werden zwei verzeichniss strukturen erstellt.
in folder2 werden ein paar dateien gelöscht
nun will ich das ich die dateien, die in folder2 fehlen, aus folder1 auch lösche

dazu erfolgt der aufruf mydel folder2 folder1
wie ihr sehen könnt WÜRDE die datei file2.txt welche ja im folder2 mittlerweile fehlt korrekterweise im folder1 nun auch gelöscht werden.

mein problem sind aber die SUBDIRS!!!!

mache ich dir /S/B

dann hab ich einen absoluten pfad. ich benötige aber einen relativen pfad!!

hab heute alles versucht mit sämtlichen for /F und for /R

for /R funktioniert auch gut, auch mit subdirs aber liefert mir ebenso absolute pfade zurück!
hab auch die ganzen syntaxe wie ~n ... angeschaut nichts half.

wer kann mir die mydel.bat so schreiben das wirklich das was in folder2 fehlt auch in folder1 gelöscht wird? sowas einfaches sollte doch per batch möglich sein!!
Mitglied: bastla
20.09.2007 um 15:30 Uhr
Hallo Ruflet und willkommen im Forum!

Vorweg gleich einmal ein Kompliment: Vernünftige Testdaten bekomme ich hier (zumindest ohne Nachfrage) selten zu sehen, und schon gar nicht in der von Dir gewählten Form.

Du hast das Problem ja schon richtig formuliert: Was Du benötigst, ist ein relativer Pfad (und als Voraussetzung dafür ein vollständiger absoluter Pfad).

Um ersteren zu erhalten, kannst Du die "Ersetzen"-Funktionalität des "set"-Befehles verwenden, für letzteren genügt "%~f1".

Da der zu ersetzende Teil (aus dem übergebenen Parameter entnommen) variabel ist, wird zusätzlich "delayed expansion" benötigt (damit kann für die eine Variable das "%" durch ein "!" ersetzt werden). Dazu gleich ein Hinweis auf einen daraus resultierenden Nachteil: Datei- oder Pfadnamen mit einem "!" im Namen fallen durch den Rost und werden nicht verarbeitet - um auch solche berücksichtigen zu können, wäre eher eine VBS-Variante gefragt.

01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Quelle=%~f1" 
03.
echo Quelle: %Quelle% 
04.
set "Ziel=%~f2" 
05.
echo Ziel: %Ziel% 
06.
 
07.
for /f "delims=" %%i in ('dir /b /s /a-d "%Ziel%"') do call :ProcessFile "%%i" 
08.
goto :eof 
09.
 
10.
:ProcessFile 
11.
set "RelPath=%~1" 
12.
set "RelPath=!RelPath:%Ziel%=! 
13.
if not exist "%Quelle%\%RelPath%" echo Loesche Datei %1
Grüße
bastla
Bitte warten ..
Mitglied: Ruflet
24.09.2007 um 13:15 Uhr
HI bastla,

mega dankeschön. das war saubere Arbeit. Jetzt kann ich genau das Automatisieren was ich wollte ohne eine andere Programmiersprache oder Skriptsprache anzuwenden und ohne Fremd Tools. Danke nochmal hat prima funktioniert!
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Vb.net Relativen Pfad in Absoluten Pfad umwandeln
Frage von ahstaxVisual Studio2 Kommentare

Hallo, Ich versuche mit VB (vb.net 2010), eine MSG-Datei in ein PDF umzuwandeln. Das klappt ganz gut, wenn man ...

Batch & Shell
XML-Datei: Pfade suchen, verlinkte Dateien kopieren und Pfade ändern
gelöst Frage von ELEVATORBatch & Shell4 Kommentare

Hallo, das Programm "Solidworks Composer" speichert Pfadangaben verlinkter Dateien in Projektdateien. Ich möchte nun diese Projektdateien inklusive aller verlinkten ...

Datenbanken
Access 2010 komplizierte Abfrage
gelöst Frage von Dr.CornwallisDatenbanken3 Kommentare

Hallo zusammen, ich bräuchte eine Query die folgendes macht(sofern das überhaupt möglich ist): Der benötigte Table hat folgende Felder: ...

Windows Server
Verzeichnisdienst kann keinen relativen Bezeichner zuweisen
Frage von AzubineWindows Server4 Kommentare

Hallo, ich habe den physikalischen Server der mit Win SRV 2008 R2 bestückt ist, mit Disk2VHDX virtualisiert. Auf dem ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 50 MinutenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 4 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 4 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 7 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement18 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...