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

gelöst Kann man die Zeilennummer aus einer Find-Abfrage als Skip-Argument für eine For-Abfrage nutzen? Nee, aber gibt es einen anderen Weg?

Mitglied: Jochem

Jochem (Level 2) - Jetzt verbinden

13.05.2011 um 09:56 Uhr, 3499 Aufrufe, 2 Kommentare

Umgebung; W2K8-Domäne mit XP-Clients; Domäne läuft unter "Full-Service" eines RZ, daher hat der lokale Admin (ich) nicht Zugriff auf alle Funktionen Zur Identifikation der Benutzer, die eine Datei im Zugriff haben, wurde vom RZ eine (verschlüsselte) Batch-Routine geschrieben, welche die enstsprechenden Dateien und zugehörigen User auflistet. ich benötige aus dieser Datei aber nur die User, welche eine bestimmte Datei sperren.

Moin zusammen,
ich hol mal ein wenig aus. Wir setzen ein C/S-Kassenverfahren (IVR/Mach) ein, welches Daten von einem Server beim RZ auf einen lokalen Server bei uns überträgt. Diese Übertragung erfolgt alle drei Stunden zur vollen Stunde. Von diesem Server werden die Daten wiederum zeitgesteuert (5 Minuten nach der vollen Stunde) auf unseren Datenserver übertragen. Die Übertragung RZ - Server bei uns funktioniert immer. Die Übertragung Server bei uns - Datenserver nur manchmal (Grund siehe weiter unten). Grund der Übertragung ist der, daß in dem Verfahren Rechnungen erfaßt werden, die in einem anderen Verfahren gebucht werden. Dazu wird eine Excel-Tabelle erstellt, auf die mit einem Exel-Formular zugegriffen wird, um anhand der Rechnungsnummer schon die Grunddaten (Anschrift, Bankverbindung, etc.) zur Verfügung zu stellen. Hat nun ein Benutzer das Formular im Zugriff, während der "Update" der Excel-Tabelle läuft, findet keine Übertragung statt, da die Datei "in Benutzung" ist. Im Ergebnis können andere Benutzer nun nicht weiterarbeiten, da die neuen Datensätze noch nicht überspielt wurden und die Abfragen aufgrund der fehlenden Rechnungsnummer ins Leere laufen.
Früher konnte ich dann auf den Server gehen, dort die Geöffneten Dateien einsehen und die Benutzer trennen, die Überspeilung manuell durchführen und alle waren fröhlich. Heute funktioniert das nicht mehr (mangels Berechtigungen auf dem Server) und ich muß mich mit dieser Datei zufrieden geben. Die Datei hat mehrere 100 Zeilen und es ist relativ müßig, die mit der Hand am Arm durchzuforsten. Nun sucht isch eine weniger aufwändige Lösung, als die manuelle Suche.

Die Datei hat folgenden Aufbau:

01.
Files opened remotely on server1: 
02.
 
03.
[1342177289] E:\Daten\M2\FB1\Abt 1.1 
04.
    User:   M2MUELL 
05.
    Locks:  0 
06.
    Access: Read  
07.
[1677721620] E:\Daten\M2\FB3\Abt 3.1\M2STEMB\Vorlagen\Normal.dotm 
08.
    User:   M2STEMB 
09.
    Locks:  0 
10.
    Access: Read Write  
11.
[1744830489] E:\apps\scowi_5_11\exe\boost_regex-vc71-mt-gd-1_33.dll 
12.
    User:   M2GERLA 
13.
    Locks:  0 
14.
    Access:  
15.
.........
Nun war meine Überlegung, ich durchsuche diese Datei mit FIND nach dern Zeilen, in denen der Gesuchte Dateiname vorkommt.
01.
FINF /i /n "export\auswertung.xls" openfiles.txt
Dieser Befehl liefert als Ergebnis:
01.
 
02.
---------- OPENFILES.TXT 
03.
[107][-603979437] E:\Export\Auswertung.xls 
04.
[131][1879048659] E:\Export\Auswertung.xls 
05.
[323][805307363] E:\Export\Auswertung.xls
Als nächsten Schritt wollte ich mit der Zeilennummer als Skip-Argument einen FOR /F-Befehl ausführen lassen. Schöne Idee, leider so nicht nutzbar, da der skip-Parameter nur ein einstelliges Argument akzeptiert.

So, und schon fangen meine Probleme an:
Wie kann ich
- die eine Datei lesen,
- die Zeilennummer ermitteln,
- diese Zeilennummer "skipfähig" aufbereiten,
- damit in eine zweite Datei gehen,
- die zugehörige Folgezeile ermitteln
- den Usernamen aus der Folgezeile ermitteln
- das Ergebnis in eine weitere Datei schreiben
- und dann zurück zur ersten Datei
- dort die nächste Zeilennummer lesen
- und das Spiel von neuem beginnen.

und vor allem, alles mit puren Batch-Mitteln.

Mir würde ja schon reichen, wenn ich aufgrund der FIND-Abfrage aus der Datei die Zeile n und Zeile n+1 extrahieren könnte, damit ich den User angelistet bekomme.

Vielleicht sehe ich aber im Augenblick den Wald vor lauter Bäumen nicht und es gibt einen ganz anderen Weg. Würde mich über Hinweise diesbezüglich freuen.

Gruß J chem
Mitglied: bastla
13.05.2011 um 10:29 Uhr
Hallo Jochem!

Aufgrund der beschriebenen Struktur (jeweils nur ein User / Block, keine Zeile beginnt mit ":") etwa so:
01.
@echo off & setlocal 
02.
set "Ein=openfiles.txt" 
03.
set "Aus=Users.txt" 
04.
set "Gesucht=export\auswertung.xls" 
05.
set "Gesucht2=User:" 
06.
 
07.
del "%Aus%" 2>nul 
08.
set "Ausgabe=" 
09.
for /f "tokens=1* delims=:" %%i in ('findstr /i /n "^" "%Ein%"') do call :ProcessLine "%%j" 
10.
goto :eof 
11.
 
12.
:ProcessLine 
13.
echo %1|find /i "%Gesucht%">nul && (set "Ausgabe=%~1" & goto :eof) 
14.
if not defined Ausgabe goto :eof 
15.
echo %1|find /i "%Gesucht2%">nul && ( 
16.
    for /f "tokens=1*" %%i in (%1) do echo %Ausgabe%	%%j 
17.
    set "Ausgabe=" 
18.
)>>"%Aus%" 
19.
goto :eof
In Zeile 16 befindet sich vor %%j ein <TAB> ...

[Nachtrag]Um aber auch Deine ursprüngliche Idee umzusetzen:
01.
@echo off & setlocal 
02.
set "Ein=openfiles.txt" 
03.
set "Aus=Users.txt" 
04.
set "Gesucht=export\auswertung.xls" 
05.
set "Gesucht2=User:" 
06.
 
07.
del "%Aus%" 2>nul 
08.
set "Ausgabe=" 
09.
for /f "tokens=1-2* delims=[]" %%i in ('find /i /n "%Gesucht%"^<"%Ein%"') do ( 
10.
    set "Ausgabe=" 
11.
    for /f "tokens=2" %%a in ('more +%%i "%Ein%"') do if not defined Ausgabe ( 
12.
        echo [%%j]%%k	%%a 
13.
        set Ausgabe=true 
14.
15.
)>>"%Aus%"
[/Nachtrag]

Grüße
bastla
Bitte warten ..
Mitglied: Jochem
13.05.2011 um 11:35 Uhr
Moin bastla,

fühl Dich geknutscht, gehätschelt, gesonstwas. Habs gerade mal so in eine Batch-Datei gehämmert und es läuft *freu*. jetzt werde ich mir das mal in aller Ruhe zu Gemüte führen und nachvollziehen, was Du so gebastelt hast und wo meine diesbezüglichen Lücken aufgetreten sind. Danke vielmals.

Gruß J chem
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Variablen außerhalb einer For Schleife abfragen

gelöst Frage von Michael-24Batch & Shell3 Kommentare

Hallo miteinander, ich habe ein Problem, bei dem ich überhaupt nicht weiter komme. Ich möche ein kleine Batchdatei erstellen, ...

Microsoft

MSSQL Profiler: Abfragen ohne Parametrisierung finden

Frage von SeaStormMicrosoft

Guten Tag zusammen, kennt jemand eine Möglichkeit per SQL Profiler (oder was auch immer) Abfragen vom SQL Server zu ...

Batch & Shell

For-Schleife Bedingung "nicht erfüllt" abfragen

Frage von BatchNeulingBatch & Shell8 Kommentare

Hallo zusammen, dieses Forum hat mir schon des öteren weiter geholfen. Leider finde ich auch nach intensiver Suche noch ...

Batch & Shell

Abfrage ERRORLEVEL springt aus der FOR Schleife

gelöst Frage von GalindieselBatch & Shell8 Kommentare

Liebe Gemeinde, ich habe eine kleine batch geschrieben, die aus einer liste (IPs) heraus Laufwerke mappen soll, darauf dann ...

Neue Wissensbeiträge
Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 6 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 18 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 20 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 21 StundenMicrosoft12 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server34 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...