hahlrichsneu
Goto Top

Verzeichnis durchsuchen und Verknüpfungen erstellen

Per Batch ein Verzeichnis nach bestimmten Dateien durchsuchen und von den Ergebnissen Verknüpfungen erstellen

Hallo,
ich habe folgende Aufgabe.
Ich möchte per Batch einen Ordner inkl. Unterordner nach PDF Dateien durchsuchen.
Die gefundenen PDF’s sollen dann als Verknüpfung Datei .lnk in einem Zielordner abgespeichert werden.

Ich hab es jetzt schon ein paar mal versucht, hierzu eine Batch zu editieren bin aber leider nicht auf ein vernünftiges Ergebnis gekommen.
Kann mir jemand bei dieser Aufgabe helfen?
Gruß
Holger

Content-ID: 87635

Url: https://administrator.de/contentid/87635

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

Jere
Jere 16.05.2008 um 10:36:08 Uhr
Goto Top
wie weit bist du denn gekommen?
schreibs mal hier rein...
kunert0345
kunert0345 18.05.2008 um 00:13:08 Uhr
Goto Top
Ich hab Rum geknobelt aber leider geht das glaube ich nicht über Batch.

Stattdessen hab ich ein Programm geschrieben das nach pdfs sucht und in einen Ordner (pdf) kopiert.
leider funktioniert es nicht wenn in unter Verzeichnissen ein Ordner oder die pdf ein Leerzeichen besitzt (tja da wünscht man sich die alten Normen und regeln wie z.b. keine Leerzeichen und alles nur 3 Buchstaben)

Das Prog:

@echo off
if not exist pdf md pdf
echo for %%%%t in ( > tmp.bat
dir /s /b *.pdf >> tmp.bat
echo ) do copy %%%%t pdf >> tmp.bat
echo del tmp.bat >> tmp.bat
tmp.bat
hahlrichsneu
hahlrichsneu 20.05.2008 um 11:41:57 Uhr
Goto Top
Hallo,
danke ersteinmal zusammen für die Antworten.
Ich hatte folgendes Batch zum erstellen der .lnk Dateien gefunden/editiert:
@echo off & setlocal

::Speicherort der Verknüpfung (unterhalb von Startmenue\Programme)
set "zielpfad=D:\Austausch\XXXXX"
::Falls das Symbol auf den Desktop soll:
::set "zielpfad=%userprofile%\Desktop"

::Name der Verknüpfung (ohne ".lnk")
set "progtitel=XXXXXXX"
::Speicherort der Programmdatei (wird auch für "Ausführen in:" verwendet)
set "progdir=C:\Programme"
set "progexe=XXXXXXXXX.exe"
::Kommentar
set "beschreibung=Erklärung eigentlich unnötig ..."

::Bei Bedarf Speicherordner der Verknüpfung erstellen (siehe oben "zielpfad"):
if not exist "%zielpfad%" md "%zielpfad%"

::temporäres VBScript erzeugen ...
echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs
echo Set objShortcut=objShell.CreateShortcut("%zielpfad%\%progtitel%.lnk")>>%temp%\MakeShortCut.vbs
echo objShortcut.TargetPath="%progdir%\%progexe%">>%temp%\MakeShortCut.vbs
echo objShortcut.Description="%beschreibung%">>%temp%\MakeShortCut.vbs
echo objShortcut.WorkingDirectory="%progdir%">>%temp%\MakeShortCut.vbs
echo objShortcut.Save>>%temp%\MakeShortCut.vbs

::... ausführen ...
cscript //nologo %temp%\MakeShortCut.vbs

::... und wieder löschen.
del %temp%\MakeShortCut.vbs


und folgendes um die Pdf's zu suchen und zentral zu kopieren:

for /r "d:\austausch\" %%i in (*.ico) do copy "%%i" "d:\austausch\test\%%~nxi"


ich bring se aber leider nicht zusammen.
Vieleicht schafft es jemand anders face-smile

Gruß
Holger
Jere
Jere 20.05.2008 um 13:30:32 Uhr
Goto Top
Hallo Holger,
ich verzweifel langsam an deinen Scripten,
kriege es nicht wie gewünscht hin.
Aber da du immer so nett bist, wollt ich dir zumindest kund tun das ich dich nicht vergessen habe.

Gruß
J
hahlrichsneu
hahlrichsneu 21.05.2008 um 11:01:18 Uhr
Goto Top
Hallo Jere,
sehr nett von Dir.
Ich möchte Dich damit aber nicht von wichtigeren Sachen abhalten face-smile

Falls ich in diesem Forum zu keiner Lösung komme, ist es halt so. Ich werd es überleben face-smile face-smile

Vielen Dank
Holger
Wolfsrudel
Wolfsrudel 16.01.2009 um 09:10:07 Uhr
Goto Top
Batch
FOR /F %%i IN ('DIR /B d:\austausch\*.ico') DO (  
    XCOPY %%i d:\austausch\test\%%~nxi /D /Y /Q /H /K
)

FOR /F %%a IN ('DIR /B d:\austausch\test\*.ico') DO (  
    CSRIPT create_shortcut.vbs "%userprofile%\Desktop" %%a "d:\austausch\test" %%a %%a "d:\austausch\test" //NOLOGO   
)

VB-Script "create_shortcut.vbs"
Set objShell=WScript.CreateObject("Wscript.Shell")  
Set objShortcut=objShell.CreateShortcut(wscript.arguments(0) & "\" & wscript.arguments(1) & ".lnk")  
objShortcut.TargetPath=wscript.arguments(2) & "\" & wscript.arguments(3)  
objShortcut.Description=wscript.arguments(4)
objShortcut.WorkingDirectory=wscript.arguments(2)
objShortcut.Save

Meine Lösung ;) Habe auch lange damit rumspielen müssen, aber es funktioniert.