Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Batch & Shell

GELÖST

Batch dir und Html Link ausgabe

Mitglied: Pilger83

Pilger83 (Level 1) - Jetzt verbinden

24.08.2014, aktualisiert 22:42 Uhr, 1287 Aufrufe, 7 Kommentare, 2 Danke

Hallo zusammen,

folgendes Problem, ich möchte eine Batch mit folgender function

dir Ordner plus Unterordner durchsuchen ausgabe ohne Kopfzeile.... klar dir /b /s
einzelnes Ergebniss in Variable speichern ausgabe html datei mit links zu den einzelnen dateien (nur PDF) *.pdf


also dachte in etwa so:

@echo off
for /f %%i (' dir "C:\test\*.pdf" /b /s ') do set verz=%%i
echo ^<a href=" %verz% ^</a^> >>Link.html
:eof

hab die Suche wirklich benutzt und lange probiert nur steig leider nicht dahinter...

mfg Markus
Mitglied: rubberman
LÖSUNG 24.08.2014, aktualisiert 25.08.2014
Hallo Markus, willkommen im Forum.

Da kommen gleich mehrere Probleme zusammen.
  • Für lokale Pfade brauchst du eine File-URL
  • Backslashes sind in URLs Slashes
  • In URLs sind nur bestimmte Zeichen erlaubt. Zeichen (wie bspw. Leerzeichen) müssen kodiert werden
  • Dein Browser wird vermutlich nicht auf lokale Dateien zugreifen dürfen

Um diese Probleme zu lösen könntest du eine kombinierte Datei aus Batch und JScript schreiben (um die encodeURI Funktion nutzen zu können), sowie statt der HTML eine HTA Datei kreieren.

*.bat
01.
@if (@X)==(@Y) @end /* Hybrid Zeile, die einen JScript Kommentar einleitet 
02.
 
03.
:: Batch Part: 
04.
@echo off &setlocal 
05.
 
06.
set "htafile=Link.hta" 
07.
 
08.
>"%htafile%" echo ^<html^>^<head^>^<HTA:APPLICATION WINDOWSTATE="maximize"^>^<title^>PDF Links^</title^>^</head^>^<body^> 
09.
 
10.
set begin=^<a href=^"file:///&set middle=^"^>&set end=^</a^>^<br^> 
11.
>>"%htafile%" ( 
12.
  for /f "delims=" %%i in ('dir /a-d /b /s "*.pdf"') do ( 
13.
    set "file=%%i" 
14.
    for /f "delims=" %%j in ('cscript //e:jscript //nologo "%~f0"') do ( 
15.
      set "url=%%j" 
16.
      setlocal EnableDelayedExpansion 
17.
      echo !begin!!url!!middle!!file!!end! 
18.
      endlocal 
19.
20.
21.
22.
 
23.
>>"%htafile%" echo ^</body^>^</html^> 
24.
pause 
25.
exit /b 
26.
 
27.
:: JScript Part: */ 
28.
WScript.Stdout.WriteLine( 
29.
  encodeURI( 
30.
    WScript.CreateObject("WScript.Shell").Environment("PROCESS")("file").replace(/\\/g, "/") 
31.
32.
);
Grüße
rubberman

EDIT: Support für Dateinamen mit Ausrufezeichen ergänzt.
EDIT2: Überflüssigen Slash entfernt
Bitte warten ..
Mitglied: Pilger83
24.08.2014 um 22:41 Uhr
oh mein Gott, ich war grad dabei es mit dem Teil aus dem Tutorial zu versuchen
"Die Variante zur Erzeugung von Zahlenfolgen, FOR /L mit setlocal enabledelayedexpansion " als mein Kopf auf die Tastatur knallte.... hab ich deine Nachricht gelesen und ausprobiert.... häng jetz seit einer Woche auf arbeit und zuhause dran und nu... weiß nicht was ich sagen sollen ausser HERZLICHSTEN DANK!
Bitte warten ..
Mitglied: rubberman
24.08.2014 um 22:56 Uhr
Hallo Markus,

gern geschehen

Ich habe den Code oben noch einmal leicht verändert, um auch Dateinamen mit Ausrufezeichen vernünftig verarbeiten zu können.

Grüße
rubberman
Bitte warten ..
Mitglied: Pilger83
25.08.2014 um 11:37 Uhr
moin moin rubberman,

danke nochmal! ein Problem hab ich jetzt noch....
Umlaute bekomm ich doch mit "chcp 1252" richtiggestellt aber irgendwie klappt das nicht so richtig
der macht mir trotzdem sowas "Rüstenl" in den Link und dann funktioniert er natürlich auch nicht... leider
Bitte warten ..
Mitglied: Pilger83
25.08.2014 um 18:45 Uhr
also da mit chcp is ja auch quatsch weil die Darstellung passt ja nur er übernimmt diese nicht so via Link in den Explorer..
Versuch mit Utf-8 scheiterte auch ebenso wie die Einstellungen des Explorers zu ändern....
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Bitte warten ..
Mitglied: rubberman
LÖSUNG 25.08.2014, aktualisiert um 20:29 Uhr
Hallo Markus,

da siehst du wie kompliziert Encoding sein kann
Ich versuchs mal
  • escape statt encodeURI
  • Charset der HTA auf CP850

01.
@if (@X)==(@Y) @end /* Hybrid Zeile, die einen JScript Kommentar einleitet 
02.
 
03.
:: Batch Part: 
04.
@echo off &setlocal 
05.
 
06.
set "htafile=Link.hta" 
07.
 
08.
>"%htafile%" echo ^<html^>^<head^>^<meta charset="cp850"^>^<HTA:APPLICATION WINDOWSTATE="maximize"^>^<title^>PDF Links^</title^>^</head^>^<body^> 
09.
 
10.
set begin=^<a href=^"file:///&set middle=^"^>&set end=^</a^>^<br^> 
11.
>>"%htafile%" ( 
12.
  for /f "delims=" %%i in ('dir /a-d /b /s "C:\test\*.pdf"') do ( 
13.
    set "file=%%i" 
14.
    for /f "delims=" %%j in ('cscript //e:jscript //nologo "%~f0"') do ( 
15.
      set "url=%%j" 
16.
      setlocal EnableDelayedExpansion 
17.
      echo !begin!!url!!middle!!file!!end! 
18.
      endlocal 
19.
20.
21.
22.
 
23.
>>"%htafile%" echo ^</body^>^</html^> 
24.
pause 
25.
exit /b 
26.
 
27.
:: JScript Part: */ 
28.
WScript.Stdout.WriteLine( 
29.
  escape( 
30.
    WScript.CreateObject("WScript.Shell").Environment("PROCESS")("file").replace(/\\/g, "/") 
31.
32.
);
Das sollte theoretisch den gewünschten Effekt erzielen ...

Grüße
rubberman
Bitte warten ..
Mitglied: Pilger83
25.08.2014 um 20:34 Uhr
ohje definitiv unterschätzt!! rubber, fühl dich ganz herzlich gedrückt! besten Dank!
funktioniert exzellente
Bitte warten ..
Ähnliche Inhalte
Outlook & Mail
HTML Link wird bei weiterleitung nicht angezeigt
Frage von LukihoferOutlook & Mail2 Kommentare

Hallo Zusammen ! Wenn im Outlook eine Weiterleitung auf einen anderen User machen wird bei einer HTML Adresse ( ...

Entwicklung
HTML Link aufrufen per Batch?VBS?JAVA?Python?
gelöst Frage von fuguEntwicklung4 Kommentare

Hey ho Coder-Gemeinde! Zugrunde liegt eine Software, mit der ich regelbasiert irgendetwas ausführen kann - eine DOS Batch, oder ...

Batch & Shell
Powershell Script - Ausgabe Tasks eines Servers in eine HTML Seite
gelöst Frage von lexuraBatch & Shell4 Kommentare

Powershell Neuling !!!! Hallo, hatte vor kurzem ja schon die Frage nach einem Script zum Auslesen der Tasks gefragt. ...

Batch & Shell
HTML in Batch und Powershell
Frage von michi-ffmBatch & Shell11 Kommentare

Hallo zusammen, zunächst nochmals vielen Dank für eure Unterstützungen!!!! Ich bin momentan dabei, mich in Batch und Powershell einzulesen ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall9 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen8 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...