myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [Batch] Prüfen ob Verknüpfung vorliegt (https://mygully.com/showthread.php?t=2862008)

Breitling1992 08.03.13 22:25

[Batch] Prüfen ob Verknüpfung vorliegt
 
Hi,
ich hoffe ihr könnt mir helfen. Nach langer suche im Inet hab ich zwar auch schon einige Lösungsansätze gefunden, leider kam ich damit nicht zurecht - ist meine erste batch datei.

Zur Vorgeschichte, damit Ihr wisst worum es geht - Alle die es nicht interessiert, ab hier ignorieren und unten beim nächsten Absatz weiterlesen. Es geht darum das ich alle Savegames auf einer 2 Festplatte sammeln möchte, sodass wenn ich das System neu aufsetze, ich nicht erst alle Savegames zusammen suchen muss und später wieder einfügen muss. Sprich die eigentlichen Savegames liegen bei mir auf G und dort wo normal der speicherpfad auf c ist, habe ich eine Verknüpfung via mklink eingefügt. Wenn ich nun aber mein System neu aufsetze, muss ich aber jedes mal wieder die Verlinkung neu setzen. Da bei (Aktuell) 80 links es etwas ermüdend ist, dies via Hand zu machen, will ich dies mit einer Batch datei machen. Im großen und ganzen funktioniert auch schon alles. Die Datei prüft ob das Verzeichnis schon existiert, wenn ja wird es umbenannt und dann erst die Verlinkung eingefügt. Das Problem ist, wenn ich die batchdatei ein zweitesmal ausführe, benennt er die schon vorhandene Verknüpfung wieder um und erstellt eine neue, da 'if exist', nicht unterscheidet ob es eine Verknüpfung ist oder ein Verzeichnis.

Lange rede, gar kein sinn: Wie kann ich mit einer batch datei Prüfen ob es sich bei einem Ordner (z.B. C:\Users\%USER%\Documents\My Games\Darksiders) noch um ein Ordner handelt oder es schon eine Verknüpfung ist?

Vielen Dank an jeden der sich Zeit nimmt!

Gruß Breitling

fryx 08.03.13 22:43

Teste mal


Code:

if exist "C:\Users\%USER%\Documents\My Games\Darksiders\" echo Ordner

Breitling1992 09.03.13 01:11

Zitat:

Zitat von fryx (Beitrag 24360527)
Teste mal


Code:

if exist "C:\Users\%USER%\Documents\My Games\Darksiders\" echo Ordner

Hey,

immernoch das selbe, er gibt mir bei allen abfragen 'Ordner' aus, also das 'if exist' macht leider kein unterschied zwischen Ordnern und Verknüpfungen.

Gruß Breitling

fryx 09.03.13 07:52

Code:

dir /al

Kravtwerk 09.03.13 21:02

Kannst du so machen:
Code:

@echo off &setlocal
set "test=C:\Users\%%USER%%\Documents\My Games\Darksiders"
for /d %%i in ("%test%") do set "#=%%~ai"
if not defined # echo.%test% nicht gefunden.&goto :eof
<nul set /p"=%test% ist ein "
if "%#:~0,1%"=="d" if "%#:~8,1%"=="l" (echo.Link.) else (echo.Ordner.) else echo File.
endlocal


Breitling1992 11.03.13 21:40

Zitat:

Zitat von Kravtwerk (Beitrag 24364951)
Kannst du so machen:
Code:

@echo off &setlocal
set "test=C:\Users\%%USER%%\Documents\My Games\Darksiders"
for /d %%i in ("%test%") do set "#=%%~ai"
if not defined # echo.%test% nicht gefunden.&goto :eof
<nul set /p"=%test% ist ein "
if "%#:~0,1%"=="d" if "%#:~8,1%"=="l" (echo.Link.) else (echo.Ordner.) else echo File.
endlocal


DANKE! Ich versuche immernoch zu verstehen wie es funktioniert, aber es funktioniert!

Danke! :)

LG Breitling


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.