Wie kann ich die Art eines Verzeichnisses (DIR oder Verknüpfung, junction) abfragen
Hallo!
Ich möchte mittels einer Batch-Datei auslesen, ob das Verzeichnis (Directory) eine Verknüpfung (Junction) oder ein echtes Directory ist.
So weit habe ich es geschafft
set datei="D:\1c\Testeneu"
for /f "tokens=3 delims= " %%a in ('dir %datei% /a:d ^|find "Testordner"') do set dirart=%%a
Danach möchte ich, wenn es sich um ein echtes Directory (DIR) handelt, das Verzeichnis löschen.
Handelt es sich um eine Verknüpfung, so möchte ich überprüfen, wohin die Verknüpfung verweist.
Die Verknüpfung erstelle ich als junction mit dem Befehl mklink /j
Bei der Abfrage mit if bekomme ich immer wieder die Fehlermeldung "<" ist syntaktisch an dieser Stelle nicht verarbeitbar,
Das ist eventuell wichtig:
Diese Batchdatei soll in der DosBox von Win-XP, Win-7, Win-8 laufen.
Bitte um Hilfe
Gerry
Ich möchte mittels einer Batch-Datei auslesen, ob das Verzeichnis (Directory) eine Verknüpfung (Junction) oder ein echtes Directory ist.
So weit habe ich es geschafft
set datei="D:\1c\Testeneu"
for /f "tokens=3 delims= " %%a in ('dir %datei% /a:d ^|find "Testordner"') do set dirart=%%a
Danach möchte ich, wenn es sich um ein echtes Directory (DIR) handelt, das Verzeichnis löschen.
Handelt es sich um eine Verknüpfung, so möchte ich überprüfen, wohin die Verknüpfung verweist.
Die Verknüpfung erstelle ich als junction mit dem Befehl mklink /j
Bei der Abfrage mit if bekomme ich immer wieder die Fehlermeldung "<" ist syntaktisch an dieser Stelle nicht verarbeitbar,
Das ist eventuell wichtig:
Diese Batchdatei soll in der DosBox von Win-XP, Win-7, Win-8 laufen.
Bitte um Hilfe
Gerry
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 275051
Url: https://administrator.de/contentid/275051
Ausgedruckt am: 18.11.2024 um 09:11 Uhr
6 Kommentare
Neuester Kommentar
Hey,
doch ich weiß wie. Ist mir aber mit pure batch zu aufwendig vorm WE ;)
Fang den Output von
Setz die Delimiter auf
Vorsicht, es gibt reichlich Stolpersteine.
Viel Glück und Gruß, Endoro
PS: vielleicht gibts mit VB oder Powershell einen vernünftigen Weg.
doch ich weiß wie. Ist mir aber mit pure batch zu aufwendig vorm WE ;)
Fang den Output von
dir /ad
mit einer for /f
-Schleife und extrahiere die gewünschten Infos.Setz die Delimiter auf
<>
, dann sind die schon mal weg.Vorsicht, es gibt reichlich Stolpersteine.
Viel Glück und Gruß, Endoro
PS: vielleicht gibts mit VB oder Powershell einen vernünftigen Weg.
Und mit Powershell sieht's so aus:
Gruß jodel32
if ((get-item 'C:\temp\testordner').Attributes -band [System.IO.FileAttributes]::ReparsePoint){
write-host "Ordner ist ein Softlink"
}else{
write-host "Ordner ist kein Softlink"
}
OMG da hat das k seinen Bestimmungsort nicht gefunden ...
Danke.
Gruß jodel
Danke.
Gruß jodel