mjimmy
Goto Top

Flache Ordnerstruktur : Verknüpfung zu allen Unterordnern anlegen mit dem gleichen Namen wie die Unterordner haben, wie macht man das?

Hallo an Alle
und herzlichen Dank fürs Lesen ...

Wir haben in unserer Firma das Problem, dass manche User dazu neigen, sehr viele Unterordner verschachtelt anzulegen, so dass man lange suchen muss, bis man etwas findet.
Daher möchte ich eine Batch datei schreiben, die mir für jeden Unterordner eine Verknüpfung anlegt.

Mit xxmklink "C:\Users\a\Desktop\batchme\My Shortcut.lnk" "C:\Users\a\Desktop\batchme\Neuer Ordner" ist das anlegen von einer Verknüpfung leicht gemacht.

Das Verzeichnis an sich ist auch leicht auszulesen und in eine Datei zu schreiben mit

dir /b /s > C:\Users\a\Desktop\batchme\test.txt

Mein Problem ist jetzt, die Verknüpfungen anzulegen, bzw. nur auf den letzten Teil des ausgelesenen Verzeichnisses zuzugreifen (nur die Ordner) und dann
diesen Teil an meine Verknüpfung anzuhängen.

Ich habe mich jetzt durch mehrere Programme gequält, um mit einer schleife jeweils die eingelesenen Verzeichnisse aufzusplitten, aber wie man auf das letzte
befüllte Ereignis eines arrays zugreift, das weiss ich nicht.

Hat jemand lust, mir ein bisschen zu helfen?
set i=0
rem FOR /f "usebackq delims=\" %%a IN (C:\Users\a\Desktop\batchme\test.txt) do(  
FOR /f "usebackq delims==" %%a IN (C:\Users\a\Desktop\batchme\test.txt) DO (  
	for /F "tokens=1,2,3,4,5,6,7,8,9,10,11,12 delims=\" %%a in ("%%a") do (  
   echo %%a
   echo %%b
   echo %%c
   echo %%d
   echo %%e
   echo %%f
   echo %%g 
   
   set /A i+=1
   set "item[!i!]=%%~a"  
   )
)
set url=%item[3]%

echo %url%

viele grüsse
Frank

[Edit Biber] Codeformatierung und nach "Batch & So" verschoben. [/Edit]

Content-ID: 318559

Url: https://administrator.de/forum/flache-ordnerstruktur-verknuepfung-zu-allen-unterordnern-anlegen-mit-dem-gleichen-namen-wie-die-unterordner-318559.html

Ausgedruckt am: 23.12.2024 um 06:12 Uhr

mjimmy
mjimmy 20.10.2016 um 16:19:40 Uhr
Goto Top
Also für xxmklink benötige ich
a) shortcut Name mit pfad
b) ordnerpfad
Den Ordnerpfad habe ich, aber wie ich auf den Namen des Ordner an sich zugreifen kann, damit ich diesen an meinen Hauptpfad anschließen kann, das weiss ich nicht

C:\Users\a\Desktop\batchme\Neuer Ordner => Neuer Ordner
131223
131223 20.10.2016 um 16:21:00 Uhr
Goto Top
Mein Problem ist jetzt, die Verknüpfungen anzulegen, bzw. nur auf den letzten Teil des ausgelesenen Verzeichnisses zuzugreifen (nur die Ordner) und dann diesen Teil an meine Verknüpfung anzuhängen.
Ein for /? zeigts dir (ganz am Ende stehen die Expansionen)
%%~dpa
%%~nxa
mjimmy
mjimmy 02.11.2016 um 10:00:56 Uhr
Goto Top
So, also hier die Lösung, für alle die es interessiert:

in eine Batchdatei:
@echo off & setlocal
PUSHD %~dp0
setlocal enableDelayedExpansion

set textdatei="%cd%\verzeichnis.txt"

dir /b /s %cd% /A:D /B >> %textdatei%

echo %cd%
set i=0

FOR /f "usebackq delims==" %%a IN (%textdatei%) DO (
set "pfad[!i!]=%%a"
for %%b in ("%%a") do (
echo %%a
echo 'test'%%~nxb

xxmklink "%cd%\%%~nxb" "%%a"

)
set /A i+=1
)


del %textdatei% /s /q
pause