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

Vergleich der ersten 8 Stellen zweier Dateinamen in 2 verschiedenen Ordnern.

Frage Entwicklung Batch & Shell

Mitglied: wuggale

wuggale (Level 1) - Jetzt verbinden

15.06.2011, aktualisiert 15:47 Uhr, 2483 Aufrufe, 7 Kommentare

Hallo zusammen,

ich schreibe gerade an einer Batch, die folgendes abarbeiten soll:
Szenario - zwei Verzeichnisse, Arbeitsverzeichnis (Dir2) und Zielverzeichnis (Dir1). Im Arbeitsverzeichnis liegen diverse Dateien (*.doc, *.xls, *.xlsm) aus welchen 1 Dokument (PDF) erzeugt wird, welches in das Zielverzeichnis verschoben wird.
Gleichnamige Dateien müssen gelöscht werden, was auch geschieht. Ein Dateityp hat leider eine etwas andere Namenskonvention wo nur die ersten 8 Zeichen übereinstimmen, nicht der ganze Dateiname und hier liegt mein Problem.

Beispiel:
01-01111_17-03-2011.pdf (im Zielordner) Vergleichsname
01-01111_17-03-2011.doc (im Quellordner, wird auch gelöscht)
01-01111-01.xlsm (im Quellordner, soll auch gelöscht werden,) davon gibt es evtl. mehrere, welche an den letzten beiden Stellen hochgezählt werden. Eben das Problem.

und hier mein Ansatz:

01.
@echo off & setlocal EnableDelayedExpansion 
02.
 
03.
Set Dir1=X:\Ziel 
04.
Set Dir2=X:\Ablage1 
05.
set EXT1=pdf 
06.
set EXT2=doc 
07.
set EXT3=xlsm 
08.
set EXT4=xls 
09.
 
10.
FOR /F "delims=" %%i in ('dir /b /s "%Dir1%\*.%EXT1%"') do if exist "%Dir2%\%%~ni.%EXT2%" del "%Dir2%\%%~ni.%ext2%" ( 
11.
FOR /F "delims=" %%i in ('dir /b /s "%Dir1%\*.%EXT1%"') do if exist "%Dir2%\%%~ni.%EXT3%" del "%Dir2%\%%~ni.%ext3%" 
12.
FOR /F "delims=" %%i in ('dir /b /s "%Dir1%\*.%EXT1%"') do if exist "%Dir2%\%%~ni.%EXT4%" del "%Dir2%\%%~ni.%ext4%" 
13.
)
ist es möglich bei diesem Ansatz zu bleiben? Identische Dateien werden ja schon gelöscht.
01.
FOR /F "delims=" %%i in ('dir /b /s "%Dir1%\*.%EXT1%"') do if exist "%Dir2%\%%~ni-*.%EXT3%" @echo del "%Dir2%\%%~ni-*.%ext3%"
bin für jeden Hinweis und Tipp dankbar..

Gruß, Wuggale..
Mitglied: Friemler
15.06.2011 um 14:23 Uhr
Hallo Wuggale,

könnte so gehen (ungetestet):
01.
@echo off  
02.
 
03.
setlocal EnableDelayedExpansion 
04.
 
05.
 
06.
Set Dir1=X:\Ziel 
07.
Set Dir2=X:\Ablage1 
08.
set EXT1=pdf 
09.
set EXT2=doc 
10.
set EXT3=xlsm 
11.
set EXT4=xls 
12.
 
13.
FOR /F "delims=" %%i in ('dir /b /s "%Dir1%\*.%EXT1%"') do ( 
14.
  if exist "%Dir2%\%%~ni.%EXT2%" del "%Dir2%\%%~ni.%Ext2%" 
15.
  if exist "%Dir2%\%%~ni.%EXT3%" del "%Dir2%\%%~ni.%Ext3%" 
16.
   
17.
  set "Special=%%~ni" 
18.
  set "Special=!Special:~0,8!" 
19.
   
20.
  if exist "%Dir2%\!Special!-*.%EXT4%" del /q "%Dir2%\!Special!-*.%Ext4%" 
21.
)
Es wird eine Zwischenvariable erzeugt, die nur die ersten 8 Stellen des Namens der PDF-Datei enthält und daraus eine Suchmaske erstellt. Der Parameter /q bei dem DEL-Befehl verhindert Nachfragen, ob denn wirklich alle durch die Maske angegebenen Dateien gelöscht werden sollen.

Gruß
Friemler
Bitte warten ..
Mitglied: wuggale
15.06.2011 um 14:50 Uhr
hallo Friemler,

das ging ja im Raketentempo - leider klappt die letzte Zeile noch nicht, habe noch auf EXT3 angepasst, da ich momentan mit "xlsm" teste.

01.
if exist "%Dir2%\!Special!-*.%EXT3%" del /q "%Dir2%\!Special!-*.%Ext3%"
Was ich nicht ganz verstehe, warum man 2x die Variable "Special" definieren kann, da die doch schon in der 1. Definition belegt ist.

Gruß,
Wuggale
Bitte warten ..
Mitglied: bastla
15.06.2011 um 15:02 Uhr
Hallo wuggale!
Was ich nicht ganz verstehe, warum man 2x die Variable "Special" definieren kann, da die doch schon in der 1. Definition belegt ist.
Ich weiß zwar nicht ganz genau, was Du damit meinst, aber das Wesen einer Variablen ist eben, dass ihr Inhalt/Wert variabel ist ...

Grüße
bastla
Bitte warten ..
Mitglied: Friemler
15.06.2011 um 15:03 Uhr
Hallo wuggale,

warum die letzte Zeile nicht funktioniert habe ich nicht verstanden. Erkläre das doch bitte noch mal näher, evtl. inkl. Deinem Code.

Die Variable Special wird beim zweiten mal einfach mit einem veränderten Wert ihrer selbst belegt. Zuweisungen in Programmiersprachen sind keine mathematischen Gleichungen, deshalb funktioniert das.

Gruß
Friemler
Bitte warten ..
Mitglied: wuggale
15.06.2011 um 15:26 Uhr
Hallo Friemler, hallo Bastler,

ok, das mit der Variable "Special" glaube ich jetzt verstanden zu haben. Eigentlich sollten im Ordner DIR2 z.B. die Dateien:
01-01111-01.xlsm
01-01111-02.xlsm
usw.
gelöscht werden, da in DIR1 ein PDF 01-01111_17-03-2011.pdf liegt. Der Code von Friemler leicht geändert ist,

01.
@echo off   
02.
 
03.
setlocal EnableDelayedExpansion  
04.
 
05.
Set Dir1=X:\0.1 - Public Information\Ziel 
06.
Set Dir2=X:\0.1 - Public Information\Ablage1  
07.
set EXT1=pdf 
08.
set EXT2=doc  
09.
set EXT3=xlsm  
10.
set EXT4=xls  
11.
 
12.
FOR /F "delims=" %%i in ('dir /b /s "%Dir1%\*.%EXT1%"') do ( 
13.
  if exist "%Dir2%\%%~ni.%EXT2%" del /q "%Dir2%\%%~ni.%Ext2%" 
14.
  if exist "%Dir2%\%%~ni.%EXT3%" del /q "%Dir2%\%%~ni.%Ext3%" 
15.
 
16.
  set "Special=%%~ni" 
17.
  set "Special=!Special:~0,8!" 
18.
  if exist "%Dir2%\!Special!-*.%EXT3%" del /q "%Dir2%\!Special!-*.%Ext3%" 
19.
)
Grüße,
Wuggale
Bitte warten ..
Mitglied: wuggale
15.06.2011 um 15:30 Uhr
Hallo Friemler,

Kommando zurück .. es klappt, da waren noch Leerzeichen hinter der Definition der Extensions - habe das grade bemerkt .

vielen Dank für diese wahnsinnig schnellen Antworten hier, ein super Forum auf höchstem Niveau !!!
Bitte warten ..
Mitglied: Friemler
15.06.2011 um 15:48 Uhr
Hallo wuggale,

gern geschehen.

Tipp: Bei SET-Befehlen immer Anführungszeichen verwenden, also z.B. so:
set "EXT1=pdf"
Dann können solche Missgeschicke nicht passieren.

Gruß
Friemler
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Vergleich einer Zeichenfolge in zwei Dateinamen
Frage von hongziehongBatch & Shell3 Kommentare

Hallo zusammen, ich möchte den Inhalt (ich weiß nicht, ob Variable das richtige Wort dafür wäre) zweier Dateinamen jeweils ...

Batch & Shell
Powershell zwei Ordner vergleichen
gelöst Frage von Rabauke84Batch & Shell2 Kommentare

Hallo zusammen, ich hab folgendes Problem: Unter meinem Profilordner (oberste Ebene) gibt es ca 140 Ordner mit den Namen ...

Batch & Shell
Batch: Erste Stellen von zwei aufeinander folgenden Zeilen derselben Textdatei vergleichen
gelöst Frage von ole-objektBatch & Shell5 Kommentare

Hallo mal wieder, meine derzeitige Arbeit erfordert leider viele Vergleiche von verschiedenen Dateien und nun also auch innerhalb derselben ...

Datenbanken
Die ersten 2 stellen in einer Spalte ändern
gelöst Frage von crashi09Datenbanken20 Kommentare

Hallo, Ich würde gerne auf unserem SQL Server in einer Tabelle eine Spalte ändern wie folgt. Es sollen nur ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 3 StundenInternet2 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 6 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 6 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 10 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
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

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

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 ...

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 ...