Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

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, 3907 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Ordner und Datei Name gleich (BATCH) (12)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Datei-Endungen, Listen und Sortierung (Batch) (5)

Frage von clragon zum Thema Batch & Shell ...

Viren und Trojaner
CryptoLocker und seine wechselnden Datei-Endungen (24)

Erfahrungsbericht von Tharen zum Thema Viren und Trojaner ...

Neue Wissensbeiträge
Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(4)

Information von LordGurke zum Thema Humor (lol) ...

Sicherheits-Tools

Trendmicro OSCE und das Fall Creators Update Win10 RS3

(3)

Information von Henere zum Thema Sicherheits-Tools ...

Microsoft Office

Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (38)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
Gruppenrichtlinie greift nicht zu! (24)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...