Abgleich Dateiname zu Verzeichisname mittels Batch
Hallo zusammen,
ich tue mich mit dem Schreiben einer Batch-Datei mal wieder etwas schwer. Daher wäre ich für eure Hilfe Dankbar.
Ich habe zwei Verzeichnisse. In einem Verzeichnis liegen Dateien in dem anderen liegen Unterverzeichnisse. Die Dateien haben das Namensformat <Eigenschaft>.txt, die Unterverzeichnisse haben das Namensformat <Eigenschaft>.xy Ja, der Verzeichnisname hat eine Punkt
Was ich tun möchte ist folgendes:
Per Batch soll abgeglichen werden, für welche TXT-Datei ein entsprechendes Verzeichnis bereits existiert (Abgleich über den Namen ohne Erweiterung). Ausreichen würde die Anzahl, wie viele existieren, bzw wie viele noch fehlen. Alternativ wäre auch eine Auflistung, welche vorhanden sind und welche fehlen eine Option.
Kann mir jemand hierbei helfen? Mein bisheriger Ansatz sieht wie folgt aus:
ich tue mich mit dem Schreiben einer Batch-Datei mal wieder etwas schwer. Daher wäre ich für eure Hilfe Dankbar.
Ich habe zwei Verzeichnisse. In einem Verzeichnis liegen Dateien in dem anderen liegen Unterverzeichnisse. Die Dateien haben das Namensformat <Eigenschaft>.txt, die Unterverzeichnisse haben das Namensformat <Eigenschaft>.xy Ja, der Verzeichnisname hat eine Punkt
Was ich tun möchte ist folgendes:
Per Batch soll abgeglichen werden, für welche TXT-Datei ein entsprechendes Verzeichnis bereits existiert (Abgleich über den Namen ohne Erweiterung). Ausreichen würde die Anzahl, wie viele existieren, bzw wie viele noch fehlen. Alternativ wäre auch eine Auflistung, welche vorhanden sind und welche fehlen eine Option.
Kann mir jemand hierbei helfen? Mein bisheriger Ansatz sieht wie folgt aus:
@echo off
Set _anzahlVorhanden=0
set SOURCE=%~1
set DEST=%~2
for %%i in (%SOURCE%\*.txt) do set 1=%%~ni(
for %%a in (%DEST%\*.xy) do set 1=%%~na(
IF %%i == %%n (
!_anzahlVorhanden! = !_anzahlVorhanden! + 1
)
)
)
echo Es sind&!anzahlVorhanden! Uebereinstimmungen vorhanden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 298494
Url: https://administrator.de/contentid/298494
Ausgedruckt am: 25.11.2024 um 21:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo rodgerwilco,
teste mal folgendes:
Gruß
Friemler
teste mal folgendes:
@echo off & setlocal
set "Files=Pfad-zum-Verzeichnis-mit-Dateien"
set "Folders=Pfad-zum-Verzeichnis-mit-Ordnern"
for %%f in ("%Files%\*.*") do (
for /d %%d in ("%Folders%\*.*") do (
if "%%~nf" equ "%%~nd" (
echo Verzeichnis %%~nf vorhanden
)
)
)
for %%f in ("%Files%\*.*") do (
set "Found="
for /d %%d in ("%Folders%\*.*") do (
if "%%~nf" equ "%%~nd" (
set "Found=1"
)
)
if not defined Found (
echo Verzeichnis %%~nf nicht vorhanden
)
)
Gruß
Friemler
Oder auch mit Powershell ein Einzeiler:
Gruß jodel32
compare (gci 'C:\quelle\*.txt' -File | select -Expand Basename) (gci 'C:\ziel' -Directory | %{($_.Name -split '\.')}) -IncludeEqual