Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Suchen von gleichen Dateien (Name plus Endung) innerhalb eines Verzeichnisses mit Unterverzeichnissen

Frage Entwicklung Batch & Shell

Mitglied: YetAnotherNick

YetAnotherNick (Level 1) - Jetzt verbinden

02.06.2008, aktualisiert 04.06.2008, 3894 Aufrufe, 5 Kommentare

Hallo allesamt,

ich stehe vor folgendem Problem:

Ich will mittels Batch (Ja, über VBS und externe Tools geht es einfacher, ich weiß ;). ) Dateien in einem Verzeichnis inkl. Unterverzeichnisse auf den identischen Namen überprüfen.

Soll heißen, wenn sich in C:\ABC\ sowie in C:\ABC\CBA\ dieselbe Datei befindet (gehen wir einfach mal von Datei.XYZ aus) möchte ich dies ausgegeben haben.

Ich hatte auch schon etwas gebastelt, was dies übernommen hat - mit erfolgreicher Ausgabe. Einziges Problem bei der ganzen Sache war, dass er mir ausgegeben hat, dass sowohl

C:\ABC\Datei.xyz mit C:\ABC\CBA\Datei.XYZ

sowie

C:\ABC\CBA\Datei.XYZ mit C:\ABC\Datei.XYZ

übereinstimmt. Das ist ja leider doppelt gemoppelt und dementsprechend nicht notwendig.

Realisiert hatte ich das bisher mit:

01.
@echo off 
02.
for /R C:\skript_6\tj1\ %%J in (*.*) do (	 
03.
 for /R C:\skript_6\tj1\ %%I in (*.*) do ( 
04.
  if %%~nxJ==%%~nxI ( 
05.
    if %%J==%%I ( 
06.
     echo. 
07.
    ) else ( 
08.
     echo %%J sowie %%I 
09.
10.
11.
12.
13.
)
Fällt jemanden eine Möglichkeit ein dies ohne diese doppelten Ausgaben zu realisieren?

Gruß,
YAN
Mitglied: Biber
02.06.2008 um 16:43 Uhr
Moin YAN,

willkommen im Forum.
Du könntest diese Ausgabe statt auf den Bildschirm in eine temporäre Datei umleiten.
Dann hättest Du die Möglichkeit, vorher nach dem spiegelbildlichen Vorkommen zu suchen.

Ungetestete Skizze:
01.
@echo off & setlocal 
02.
Set "yat=%temp%\YetAnotherTempfile.YAT" 
03.
Echo.>"%yat%" 
04.
for /R C:\skript_6\tj1\ %%J in (*.*) do (	 
05.
 for /R C:\skript_6\tj1\ %%I in (*.*) do ( 
06.
  if "%%~nxJ"=="%%~nxI" ( 
07.
    if "%%J"=="%%I" ( 
08.
     echo. 
09.
    ) else ( 
10.
     FindStr /i /C:"%%I sowie %%J" "%yat%">nul || echo %%J sowie %%I>>"%yat%" 
11.
12.
13.
14.
15.
16.
:: hier ggf ein Anzeigen von %Yat% mit TYPE o.ä. , siehe bei bastla 
17.
if exist "%yat%" del "%yat%"
Grüße
Biber

[Edit 3.6.2008] "&&"-Bedingung in Zeile 10 auf "||" geändert nach Bugfix bastla,
Ist dennoch buggy und tut es nicht. s.u.[/Edit]
Bitte warten ..
Mitglied: bastla
02.06.2008 um 17:40 Uhr
... oder, etwas abgewandelt:
01.
@echo off & setlocal 
02.
Set "yat=%temp%\YustAnotherTempfile.YAT" 
03.
Echo\>"%yat%" 
04.
for /R C:\skript_6\tj1\ %%J in (*.*) do (	 
05.
 for /R C:\skript_6\tj1\ %%I in (*.*) do ( 
06.
  if "%%~nxJ"=="%%~nxI" ( 
07.
    if "%%J" neq "%%I" ( 
08.
     FindStr /i /C:"%%I sowie %%J" "%yat%">nul || echo %%J sowie %%I>>"%yat%" 
09.
10.
11.
12.
13.
type %yat%
Vorteil wäre hier, dass die Ergebnisse nicht nur ausgegeben werden, sondern auch (in %yat%) gespeichert zur Verfügung stehen.

Grüße
bastla
Bitte warten ..
Mitglied: YetAnotherNick
03.06.2008 um 07:28 Uhr
Wow, das ging ja fix - und ist genau das, was ich gebraucht habe.

Danke fuer die schnellen Antworten !

--
Edit:

Hmm, da habe ich mich wohl etwas zu früh gefreut. Leider erscheinen die Duplikate immernoch.

Inwiefern fängt das FindStr denn die Duplikate ab? Und/Oder wie kann ich am besten eine Überprüfung einbauen?

Und um das Ganze nochmal darzustellen - Ich möchte statt:

01.
C:\Skript_6\tj2\mfc70.dll sowie C:\Skript_6\tj2\blub\mfc70.dll 
02.
C:\Skript_6\tj2\blub\mfc70.dll sowie C:\Skript_6\tj2\mfc70.dll
nur

01.
C:\Skript_6\tj2\mfc70.dll sowie C:\Skript_6\tj2\blub\mfc70.dll
haben.

Gruß,
ein wenig verwirrter YAN
Bitte warten ..
Mitglied: bastla
03.06.2008 um 19:27 Uhr
Hallo YAN!

Ändere die Zeile 8 auf
01.
FindStr /i /C:"%%I" "%yat%">nul || echo %%J sowie %%I>>"%yat%"
Grüße
bastla
Bitte warten ..
Mitglied: YetAnotherNick
04.06.2008 um 08:41 Uhr
!

Super, danke!

Und ich war schon leicht am verzweifeln - aber es sind ja (wie üblich) die kleinen Sachen ^^ ;).

Gruß,
YAN
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(1)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch kopiert immer wieder die gleichen Dateien (1)

Frage von nobbi49 zum Thema Batch & Shell ...

Batch & Shell
gelöst XML-Datei: Pfade suchen, verlinkte Dateien kopieren und Pfade ändern (4)

Frage von ELEVATOR zum Thema Batch & Shell ...

Viren und Trojaner
Erpressungs-Trojaner Locky markiert Geisel-Dateien mit .aesir-Endung

Link von VGem-e zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...