Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Erreichbarkeit von Links überprüfen die in verschiedenen Dateie stehen.

Frage Entwicklung Batch & Shell

Mitglied: bankaifan

bankaifan (Level 2) - Jetzt verbinden

28.10.2011 um 09:02 Uhr, 2811 Aufrufe, 11 Kommentare

Hallo zusammen,
ich hätte eine Frage und zwar möchte ich eine Batchdatei erstellen, die alle .html und .js Dateien in einem Verzeichnis und dessen Unterverzeichnissen durchsucht nach dem String "file://*" anschließend soll überprüft werden ob der link der hinter dem string kommt (file://J:\SAS\Navigation\) erreichbar ist. Der link kann sowohl auf dateien als auch auf verzeichnisse verlinken.

Viele Grüße
Mitglied: 60730
28.10.2011 um 09:39 Uhr
Salve,

  • was ist denn aus dem geworden?

und zwar möchte ich eine Batchdatei erstellen, die alle .html und .js Dateien in einem Verzeichnis und dessen Unterverzeichnissen durchsucht nach dem String "file://*"

  • dazu gibts doch hier massenhaft Vorlagen?
  • DU schreibst doch auch -möchte ich eine Batchdatei erstellen?

Von daher und weil ich nicht wirklich DIE Frage finde, die du gestellt hast - die Gegenfrage - wo hängt es?

  • SUFUPUTT?
  • for /?
  • findstr /?
  • if not exist ?
Bitte warten ..
Mitglied: bankaifan
28.10.2011 um 11:00 Uhr
01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
for /R %CD% %%a in (*) do for /F %%b in ("%%a") do if %%b equ "file://*" echo >> test.txt
so weit bin ich bis jetzt aber auch das funktioniert iwie nicht.

Der oben genannte link sieht interessant aus. dazu muss ich aber erstmal noch ne genehmigung bekommen das teil durch die DMZ zu zwengen ^^

Danke dafür.
Bitte warten ..
Mitglied: 60730
28.10.2011 um 11:26 Uhr
hommmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

Den verlinkten Link hat dir gestern doch der Kollege... geschickt?

Für das führende €echo off - zahle bitte 5 ReichsMark an eine Wohltätige Stiftung, und wenn du mir die Spendenquittung gefaxt hast - kann ich ja nochmal gnädigerweise drüberschauen.
Bitte warten ..
Mitglied: bankaifan
28.10.2011 um 12:27 Uhr
Hab leider gerade keine Quittungen da. Aber ... ich bin weiter gekommen

Als nächstes muss ich nurnoch alle zeichen die mich nicht interessieren aus der jeweiligen zeile rausbekommen


ich konnte den link gestern nicht öffnen, da ist er an unserem Filter gescheitert. jetzt geht er komischer weise
Bitte warten ..
Mitglied: bankaifan
28.10.2011 um 12:52 Uhr
Ok. Hier komme ich jetzt aber wirklich nichtmehr weiter.

01.
setlocal enabledelayedexpansion 
02.
for /R %CD% %%a in (*) do for /F %%b in ("%%a") do findstr /I /C:file:// %%b >>test.txt 
03.
for /F "tokens=1,2,3 delims=" usebackq" %%c in (test.txt) do echo %%e >> test2.txt 
04.
pause>nul
ich hab jetzt in test.txt alle Links die "file://" enthalten. aber am anfang steht bei machen noch "<a href="" und bei anderen "linkset[0]='<a href=" sowie am ende "*>"

Wie komme ich das noch weg?

EDIT: ich habe mit diesem code

01.
setlocal enabledelayedexpansion 
02.
if exist test.txt del test.txt 
03.
for /R %CD% %%a in (*) do for /F %%b in ("%%a") do findstr /I /C:file:// %%b >>test.txt 
04.
if exist test2.txt del test2.txt 
05.
for /F %%c in (test.txt) do echo %%c >> test2.txt 
06.
pause>nul
zumindest den anfang der zeile als output bekommen. ich will aber " als delimiter verwenden und dann den zweiten token verwenden.

Also Beispiel zwei zeilen:

<a href="file://W:\Prz-SOFTWARE\IB63\SAS\MXG">MXG<br /> 
linkset[0]='<a href="file://W:/Prz-SAS92/ITMS/ITRM/i/HUK ITRM Transformations">HUK ITRM Transformations</a>'
Und ich möchte als Ergebnis:

"file://W:\Prz-SOFTWARE\IB63\SAS\MXG" bzw: "W:\Prz-SOFTWARE\IB63\SAS\MXG"
selbiges beim zweiten link
Bitte warten ..
Mitglied: bastla
28.10.2011 um 15:48 Uhr
Hallo bankaifan!

Ich würde das eher so versuchen:
01.
@echo off & setlocal 
02.
set "Liste=test2.txt" 
03.
set "Nach=file://" 
04.
 
05.
del "%Liste%" 2>nul 
06.
for /R %%a in (*) do for /f "delims=" %%b in ('findstr /I /C:file:// "%%a"') do set "Zeile=%%b" & call :ProcessLine 
07.
goto :eof 
08.
 
09.
call set "Zeile=%%Zeile:*%Nach%=%%" 
10.
>>"%Liste%" echo %Zeile% 
11.
goto :eof
BTW: Die Schreibweise
for /r %CD%
ist entweder sinnlos (wenn der aktuelle Pfad kein Leerzeichen enthält) oder kontraproduktiv (bei Leerzeichen im aktuellen Pfad) - um eine durchgängig sinnlose Version zu erhalten, solltest Du
for /r "%CD%"
verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: bankaifan
31.10.2011 um 07:24 Uhr
Das Fehlt noch ein

:ProcessLine oder?

Ich bekomme jedoch nur 5 Zeilen als Output obwohl ingesamt fast 30 Links nach diesem Schema enthalten sind. und die <a href="http://*"> files bekomme ich so auch nicht. Ich denke da ist die Token Methode besser. Ich komme damit aber nicht so gut zurecht.

EDIT:

ich hab jetzt verschiedene sachen ausprobiert und bin am ende zumindest einigermaßen ans ziel gekommen

Die erste Methode hat mir zwar zuverlässig alle Links geliefert, jedoch nicht so schön aufbereitet wie die zweite
01.
@echo off & setlocal 
02.
set "Liste=test2.txt" 
03.
set "Nach=file://" 
04.
 
05.
echo file 
06.
 
07.
for /R %%a in (*) do for /f "tokens=1,2,3,4 delims=><" %%b in ('findstr /I /C:file:// "%%a"') do set "Zeile=%%c" & call :ProcessLine 
08.
goto :eof 
09.
 
10.
:ProcessLine 
11.
call set "Zeile=%%Zeile:*%Nach%=%%" 
12.
>>"%Liste%" echo "%Zeile%" 
13.
goto :eof
Die zweite Methode hat mir nur ein paar links geliefert ( eben die, bei denen kein <a am anfang steht nicht) dafür diese aber schön aufbereitet. vllt habt ihr ja jetzt noch ne tolle kombination der beiden ^^
01.
setlocal enabledelayedexpansion 
02.
REM for /R %%a in (*) do for /F %%b in ("%%a") do findstr /I /C:http %%b >>test.txt 
03.
del tmp1.txt 
04.
del file.txt 
05.
del http.txt 
06.
del https.txt 
07.
for /R %%k in (*) do for /F "tokens=1,2,3,4 delims=><" %%l in (%%k) do if not "%%m"=="" call :ProcessLine "%%m" 
08.
pause>nul 
09.
 
10.
 
11.
:ProcessLine 
12.
set var=%1% 
13.
if "%var:~1,1%"=="a" ( 
14.
if "%var:~9,1%"=="f" echo %var% >> file.txt 
15.
if "%var:~12,2%"=="ps" echo %var% >> https.txt 
16.
if "%var:~12,2%"=="p:" echo %var% >> http.txt 
17.
)
Bitte warten ..
Mitglied: bastla
31.10.2011 um 15:01 Uhr
Hallo bankaifan!
Das Fehlt noch ein

:ProcessLine oder?
Yep - gut, dass Du noch eines herumliegen hattest ...
Dass es auch um Links gehen sollte, die nicht auf Dateien/Ordner zeigen, hattest Du aber nicht erwähnt ...

... daher wäre es sinnvoll, eine Beispieldatei mit möglichst allen vorkommenden Schreibweisen zu posten.

Ansonsten könntest Du auch einfach noch ein Schleifchen um die Version 1 herumwickeln und die gewünschten Arten getrennt verarbeiten lassen, also (ungetestet) etwa:
01.
@echo off & setlocal 
02.
set "Art=file http https" 
03.
 
04.
for %%i in (%Art%) do ( 
05.
    del "%%i.txt" 
06.
    for /R %%a in (*) do for /f "tokens=1,2,3,4 delims=><" %%b in ('findstr /I /C:%%i:// "%%a"') do set "Zeile=%%c" & call :ProcessLine "%%i" 
07.
08.
goto :eof 
09.
 
10.
:ProcessLine 
11.
call set "Zeile=%%Zeile:*%~1://=%%" 
12.
>>"%~1.txt" echo "%~1://%Zeile% 
13.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: bankaifan
31.10.2011 um 15:19 Uhr
Zu so später Stunde noch ne antwort Aber für mich ist jetzt erstmal Feierabend. Teste ich dann am Mittwoch.

Dennoch hier mal die schreibweisen:

linkset[0]='<a href="file://W:/Prz-SAS92/ITMS/ITRM/i/HUK ITRM Transformations">HUK ITRM Transformations</a>' Die 0 ist variabel, von 0 bis *
linkset[0]+='<a href="file:
W:/Prz-SAS92/ITMS/ITRM/i/ITSAIX">AIX</a>'
linkset[0]='<a href="http://...">HUK ITRM Transformations</a>' Die 0 ist variabel, von 0 bis *
linkset[0]+='<a href="https:
...">AIX</a>'
linkset[0]+='<a href=""https://r3p1l05a1.lan.huk-coburg.de:21001/ibm/console" target="_blank">AIX</a>'

Parameter in diesen links nicht vorhanden. (Die oben genannten links tauchen nur in den .js so auf

ansonsten

Parameter und Targer variabel (ggf. intern in dem token noch ne trennung nach "?
<a href="file://..." (PARAMETER/TARGET)>BESCHREIBUNG</a><br />
<a href="http/https://... WIE OBEN>

Nicht mit verarbeitet haben sollen z. B.

<a href="#" onMouseover="showmenu(event,linkset[1])" onMouseout="delayhidemenu()">ITRM Backup</a><br />

ein Beispiel mit Parameter

<td><a href="file://W:\Prz-SOFTWARE\IT63\SAS\SAS92\TS2M3\SASFoundation\9.2\sastest\sasoq.exe -tables *:*">SAS Operational Qualification Tool</a><br /></td>

Die Parameter müssen nicht mit übernommen werden. Ich will überall nur den reinen Link.




Falls sich das umsetzen lässt wäre ich für eure hilfe wirklich dankbar. ansonsten werde ich es wohl mit STRG + H (Ersetzen) lösen müssen. Ist aber bei steigender Anzahl von Variationen und Links nicht so schön


In diesem Sinne. Schönen Feierabend und morgen einen erholsamen Feiertag.

Grüße

Daniel
Bitte warten ..
Mitglied: bastla
31.10.2011 um 19:47 Uhr
Hallo bankaifan!

Nur mal am Beispiel von
<td><a href="file://W:\Prz-SOFTWARE\IT63\SAS\SAS92\TS2M3\SASFoundation\9.2\sastest\sasoq.exe -tables *:*">SAS Operational Qualification Tool</a><br /></td>
Ich wüsste nicht, nach welchen Kriterien hier der Link vom Parameter getrennt werden sollte - Leerzeichen kann es ja im Hinblick auf zB
linkset[0]='<a href="file://W:/Prz-SAS92/ITMS/ITRM/i/HUK ITRM Transformations">HUK ITRM Transformations</a>'
eigentlich nicht sein ...

Grüße
bastla

P.S.: Bitte auch für Beispiel-Daten Code-Formatierung verwenden ...
Bitte warten ..
Mitglied: bankaifan
02.11.2011 um 08:20 Uhr
Hallo bastla,

nungut angesichts dessen könnte ich damit leben dass die parameter noch dran hängen.


Ok geht klar

Grüße

PS: Die Methode oben hat auf jedenfall schonmal alle links gefunden.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Netzwerke
gelöst Zugriff auf Server von verschiedenen VLANs aus (6)

Frage von Kroeger02 zum Thema Netzwerke ...

Batch & Shell
gelöst Powershell - Dateien aus verschiedenen Arrays - Attribute vergleichen (5)

Frage von Giffas zum Thema Batch & Shell ...

LAN, WAN, Wireless
Externe Erreichbarkeit sicherstellen (9)

Frage von Mr.Error zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
IP-Cam aus verschiedenen VLANs (2)

Frage von NoobOne zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...