hiob08
Goto Top

Text finden und Folgezeile ausgeben

Hallo zusammen,

ich hab hier eine Ordner mit etwa 15000 Dateien.
Innerhalb der Dateien möchte ich nach einem bestimmten String suchen und die Folgezeile in einer seperaten Textdatei speichern.
Der gesuchte String kann pro Datei einmal aber auch mehrmals vorkommen.

Habe das hier schon gefunden:Text suchen und Folgezeile ausgeben
Leider bin ich damit nicht weit gekommen :P

Hat jemand eine Idee?

Content-Key: 148293

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

Printed on: April 18, 2024 at 23:04 o'clock

Member: Friemler
Friemler Aug 04, 2010 at 09:56:52 (UTC)
Goto Top
Hallo hiob08,

versuche folgenden Code:

@echo off

setlocal enabledelayedexpansion

set "searchdir=%Userprofile%\Desktop"  
set "searchfiles=*.txt"  
set "searchstr=test"  
set "destfile=con"  

del "%destfile%" 2>NUL  

for %%a in ("%searchdir%\%searchfiles%") do (  
  for /f "delims=:" %%b in ('findstr /i /n /c:"%searchstr%" "%%a"') do (  
    set /a theNextline=%%b+1 > NUL

    for /f "delims=: tokens=1,*" %%i in ('findstr /n $ "%%a" ^| findstr /b "!theNextLine!"') do (  
      if "%%j" neq "" echo %%j>>"%destfile%"  
    )
  )
)

endlocal

Die Variablen vor der ersten FOR-Schleife musst Du anpassen. Durch set destfile=con in Zeile 9 ([Edit] Zeile 8) wird alles auf dem Bildschirm ausgegeben, zum Testen.

Falls der String, den Du suchst, nur als eigenständiges Wort vorkommen soll und nicht auch als Bestandteil eines längeren Wortes, muss Zeile 13 folgendermaßen lauten:
for /f "delims=:" %%b in ('findstr /i /n /r /c:"\<%searchstr%\>" "%%a"') do (  
Für Diese Zeile gilt: Falls der Suchstring eines der Zeichen .*^$\ oder die Zeichenkombinationen \< oder \> enthält, muss JEDES EINZELNE dieser Zeichen mit \ escaped werden (siehe Hilfe zum FINDSTR-Befehl, erreichbar durch eingabe von findstr /? an der Eingabeaufforderung). Beispiel: Du willst nach 100$ suchen -> Dein Suchstring muss 100\$ lauten.

[Edit]
Wenn Du bei Deiner Suche Groß- und Kleinschreibung berücksichtigen willst, lass das /i weg.

Falls Du Fragen zur Funktionsweise des Codes hast, lass hören.
Dein Suchstring darf in dieser Version keine Anführungszeichen enthalten.
Wenn die Nachfolgerzeile der Zeile, die den Suchstring enthält, leer ist, wird nichts in die Zieldatei geschrieben.

Gruß
Friemler
Member: hiob08
hiob08 Aug 04, 2010 at 10:46:23 (UTC)
Goto Top
Hallo Friemler,

danke für die fixe Antwort. Leider funktioniert das Skript nicht bei mir.
Das Fenster schließt sich einfach wieder und es wird keine Datei (%destfile%) geschrieben.
Hast du eine Idee warum es bei mir nicht geht?

Gruß
h1ob
Member: Biber
Biber Aug 04, 2010 at 10:55:45 (UTC)
Goto Top
[OT]

Zitat von @hiob08:
Hallo Friemler,

danke für die fixe Antwort. Leider funktioniert das Skript nicht bei mir.
Das Fenster schließt sich einfach wieder ....
Das gibt bestimmt gleich passende Antworten....

Und das zu Recht.
[/OT]
Mitglied: 60730
60730 Aug 04, 2010 at 11:03:19 (UTC)
Goto Top
Zitat von @Biber:
[OT]
Das gibt bestimmt gleich passende Antworten....

Und das zu Recht.
[/OT]

[OT]
Wenn ich früher zum Onkel Doktor oder auf ein Amt gehen mußte und ich gefragt wurde, was ich beruflich mache
und ich wahrheitsgemäß antwortete- bekam ich immer einen "dummen" Spruch gedrückt und das Gesicht des jeweiligen Gegenüber verzog sich merkwürdig.
Früher konnte ich dieses Verhalten nicht einordnen - heute nenn ich mich dompteur d'ordinateur
[/OT]
Member: Friemler
Friemler Aug 04, 2010 at 11:16:23 (UTC)
Goto Top
Hallo hiob08,

hast Du die Variable destfile in Zeile 8 angepasst (und auch die anderen in Zeile 5-7)? Ich hatte doch geschrieben, das durch set destfile=con die Ausgabe auf dem Bildschirm landet. Da kein PAUSE-Befehl am Ende des Skripts steht und Du es wahrscheinlich per Doppelklick gestartet hast statt von der Eingabeaufforderung, siehst Du auch nichts. Wer lesen kann ist klar im Vorteil.

Gruß
Friemler
Member: hiob08
hiob08 Aug 04, 2010 at 11:33:31 (UTC)
Goto Top
Hallo Friemler,

ganz so unbedarft bin ich nicht.
Habe natürlich die Variablen angepasst und auch mal testweise @echo on gestellt und am Ende ein Pause eingefügt um zu sehen, ob der die Dateien auch tatsächlich durchläuft.
So sehen die Variablen aus:

set "searchdir=C:\Users\XXXXX\Desktop\Test"   
set "searchfiles=*.TXT"   
set "searchstr=R4_OBJEKT"   
set "destfile=ergebnis.txt"   

//EDIT

Hab jetzt nochmal genauer geschaut. Das Skript geht die Schleifen richtig durch und findet auch die richtigen Stellen,
dass kann ich mit @echo on in der Variable theNextline sehen. Nur scheint - wenn ich das richtig sehe - die Auflösung der Variable theNextline in Zeile 14 nicht richtig zu klappen, trotz delayedexpansion.
Ich dachte zunächst, dass es an mangelnden Berechtigungen liegen könnte, aber auch das Skript mit Adminrechten zu starten bringt nichts.
Member: Friemler
Friemler Aug 04, 2010 at 12:05:34 (UTC)
Goto Top
Hallo hiob08,

die Sache mit der verzögerten Variablenerweiterung soll laut Aussage von Biber etwas buggy sein und manchmal nicht richtig funktionieren.

Poste doch mal eine Ausgabe des Skripts mit eingeschaltetem ECHO, vielleicht kommen wir dann weiter.

Gruß
Friemler
Member: hiob08
hiob08 Aug 04, 2010 at 12:16:21 (UTC)
Goto Top
Hallo Friemler,

hier die Ausgabe:

C:\Users\Admin\Desktop\Test>set "searchdir=C:\Users\Admin\Desktop\Test"  

C:\Users\Admin\Desktop\Test>set "searchfiles=*.TXT"  

C:\Users\Admin\Desktop\Test>set "searchstr=R4_OBJEKT"  

C:\Users\Admin\Desktop\Test>set "destfile=ergebnis.txt"  

C:\Users\Admin\Desktop\Test>for %a in ("C:\Users\Admin\Desktop\Test\*.TXT") do (for /F "delims=:" %b in ('findstr /i /n /c:"R4_OBJEKT" "%a"') do (  
set /a theNextline=%b+1   1>NUL
 for /F "delims=: tokens=1,*" %i in ('findstr /i /n $ "%a" | findstr /b "!theNextLine!"') do (echo %j 1>>"ergebnis.txt" )  
) )

C:\Users\Admin\Desktop\Test>(for /F "delims=:" %b in ('findstr /i /n /c:"R4_OBJEKT" "C:\Users\Admin\Desktop\Test\20100804.TXT"') do (  
set /a theNextline=%b+1   1>NUL
 for /F "delims=: tokens=1,*" %i in ('findstr /i /n $ "C:\Users\Admin\Desktop\Test\20100804.TXT" | findstr /b "!theNextLine!"') do (echo %j 1>>"ergebnis.txt" )  
) )

C:\Users\Admin\Desktop\Test>(
set /a theNextline=15+1   1>NUL
 for /F "delims=: tokens=1,*" %i in ('findstr /i /n $ "C:\Users\Admin\Desktop\Test\20100804.TXT" | findstr /b "!theNextLine!"') do (echo %j 1>>"ergebnis.txt" )  
)

C:\Users\Admin\Desktop\Test>endlocal

C:\Users\Admin\Desktop\Test>Pause
Drücken Sie eine beliebige Taste . . .

Das Skript liest die Datei also richtig ein und stellt auch richtig fest, dass der Suchstring in Zeile 15 zu finden ist.
Was hat eigentlich das Dollar-Zeichen ($) in deinem Skript in Zeile 14 in dem Fall zu bedeuten?
Member: Friemler
Friemler Aug 04, 2010 at 12:50:05 (UTC)
Goto Top
Hallo hiob08,

das in der Ausgabe des Skripts "!theNextLine!" steht, ist normal. Bei mir (Windows XP SP3) funktioniert es und es steht das gleiche auf dem Schirm.

Das $-Zeichen bei dem einen FINDSTR-Befehl bewirkt, das nach einem Zeilenende gesucht wird, es werden also alle Zeilen gefunden inkl. leere. Der Befehl dient durch /n dazu, alle Dateizeilen mit einer Nummer zu versehen. Die richtige Zeile wird durch findstr /b "!theNextLine!" gefunden. Der sucht durch /b am Anfang einer Zeile (also da, wo die Zeilennummer steht) nach der Nummer in der Variable theNextLine.

Durch delims=: zählt der Doppelpunkt nach der Zeilennummer als Trennzeichen. Durch tokens=1,* wird deshalb der Laufvariablen %%i die Zeilennummer zugewiesen (brauchen wir nicht) und der durch die tokens-Option implizit erzeugten Laufvariablen %%j der eigentliche Zeileninhalt, der durch echo %%j>>%destfile% an die Ergebnisdatei angehängt wird.

Apropos: Vor der äußeren FOR-Schleife, also nach den SET-Befehlen, fehlt eigentlich noch
del %destfile% 2>NUL

Sonst steht in der Zieldatei alles, was bei ALL Deinen Testläufen ausgegeben wurde.

Was steht eigentlich in der Ausgabedatei? Garnichts oder Mist oder was? Welches OS benutzt Du? Vista oder Win7?

[Edit]
Wenn Du bei Deiner Suche Groß- und Kleinschreibung berücksichtigen willst, muss die Zeile
for /f "delims=:" %%b in ('findstr /i /n /c:"%searchstr%" "%%a"') do (  
so lauten:
for /f "delims=:" %%b in ('findstr /n /c:"%searchstr%" "%%a"') do (  

Gruß
Friemler
Member: hiob08
hiob08 Aug 04, 2010 at 13:03:28 (UTC)
Goto Top
Hallo Friemler,

die Zieldatei wird garnicht erzeugt. Habs grad auch mal an einem XP-Rechner probiert.
Da wird die Datei leider auch nicht erzeugt.

Gruß

//EDIT
Habs jetzt mit Win7 und WinXP probiert.
Member: Friemler
Friemler Aug 04, 2010 at 13:12:25 (UTC)
Goto Top
Hallo hiob08,

tja, dann ist Dein Suchstring in der Datei nicht enthalten. Oder Du suchst die Zieldatei im falschen Ordner. Du gibst ja nur ergebnis.txt als Zieldatei an. Die wird dann im aktuellen Verzeichnis angelegt, was bei Start des Skripts gesetzt ist. Eine andere Möglichkeit sehe ich nicht.

Gruß
Friemler
Member: hiob08
hiob08 Aug 04, 2010 at 13:28:24 (UTC)
Goto Top
Hallo Friemler,

vielen dank für deine Geduld. Ich habs sowohl mit nur ergebnis.txt als auch mit voll qualifiziertem Pfad probiert. Geht leider beides nicht.
Und der Suchstring muss in der Datei drin sein, weil ich wie gesagt bei eingeschaltetem Echo die Zeilennummer in der Variable theNextline sehen kann.
Irgendwie bin ich total verwirrt :P
Member: Friemler
Friemler Aug 04, 2010 at 13:39:03 (UTC)
Goto Top
Hallo hiob08,

und die zweite Codezeile lautet auch
setlocal enabledelayedexpansion
? Hat nämlich in der Ausgabe des Skript-Laufs gefehlt. Ich gehe bis jetzt davon aus, daß Du sie (in der Ausgabe) weg-editiert hast, da Du weiter oben schreibst
Zitat von @hiob08:
Nur scheint - wenn ich das richtig sehe - die Auflösung der Variable theNextline
in Zeile 14 nicht richtig zu klappen, trotz delayedexpansion.

Ansonsten: Was ist der Inhalt von C:\Users\Admin\Desktop\Test\20100804.TXT?

Gruß
Friemler
Member: hiob08
hiob08 Aug 05, 2010 at 05:14:58 (UTC)
Goto Top
Hallo Friemler,

delayedexpansion ist die ganze Zeit aktiv, ich habe es nur zusammengefasst mit '@echo on & setlocal enabledelayedexpansion', daher fehlt es in der Ausgabe.

Der Inhalt der Textdateien sieht wie folgt aus:

#Feld R4_GROESSE
14
#Feld R4_OBJEKT
0123456789
#Kommentar
Dies ist ein Kommentar

//EDIT

ich habe mal versucht den Fehler weiter einzukreisen.
Wenn ich testweise den ersten findstr-Befehl (also 'findstr /n $ "test.txt" ^) aus Zeile 16 manuell in die Konsole tippe, kommt folgende Ausgabe:

 
C:\Users\Admin\Desktop\Test>findstr /i /n $ test.txt ^
Mehr?
Mehr?
test.txt:1:asfd
test.txt:2:ad
test.txt:3:sa
test.txt:4:sd
test.txt:5:asd
test.txt:6:as
test.txt:7:d
test.txt:8:asd
test.txt:9:as
test.txt:10:d
test.txt:11:edrfehgddfgdggf
test.txt:12:a
test.txt:13:d
test.txt:14:asd
test.txt:15:g
test.txt:16:er
test.txt:17:t
test.txt:18:er
test.txt:19:as
test.txt:20:
test.txt:21:acx
test.txt:22:xy
test.txt:23:cq
test.txt:24:
test.txt:25:qr
test.txt:26:rqwreewr
test.txt:27:Feld
FINDSTR:
 kann nicht geöffnet werden.
Member: Friemler
Friemler Aug 05, 2010 at 11:52:04 (UTC)
Goto Top
Hallo hiob08,

wenn ich
findstr /i /n $ test.txt ^
eintippe, kommt was vergleichbares, meine test.txt hat nur einen anderen Inhalt. Du musst das ^-Zeichen weglassen. Im Batch dient das Zeichen dazu, das nachfolgende |-Zeichen (Pipe-Zeichen) zu escapen. Wenn das ^ fehlt, versteht der Interpreter die Befehlszeile nicht. Wenn Du den o.g. Befehl ohne das ^ eintippst, kommt weder zweimal "Mehr?" noch wird der Dateiname vor den Zeilennummern ausgegeben und "FINDSTR: kann nicht geöffnet werden" erscheint auch nicht.

Poste doch bitte mal Deinen Batch-Code.

Gruß
Friemler
Member: hiob08
hiob08 Aug 05, 2010 at 12:19:51 (UTC)
Goto Top
Hallo Friemler,

ich hab jetzt den ganzen Vormittag "rumprobiert" und hab nun in der innersten for-Schleife folgendes stehen:

for /f "delims=: tokens=1,*" %%i in ('findstr /n . "%%a" ^| findstr "!theNextLine!"') do (   
     echo %%j>>"%destfile%"  

Damit scheint es wunderbar zu klappen, nur leider wird nun jede Zeile, in der !theNextLine! vorkommt ausgegeben,
d.h. wenn !theNextLine!= 16, dann wird Zeile 16 ausgegeben (super!) und zusätzlich jede Zeile, in der eine 16 vorkommt.
Kann ich findstr irgendwie dazu bringen, in dem Beispiel oben nur die Zeile 16 auszugeben?

Gruß
h1ob
Member: Biber
Biber Aug 05, 2010 at 12:37:03 (UTC)
Goto Top
Moin hiob,


Zitat von @hiob08:
d.h. wenn !theNextLine!= 16, dann wird Zeile 16 ausgegeben (super!) und zusätzlich jede Zeile, in der eine 16 vorkommt.
Kann ich findstr irgendwie dazu bringen, in dem Beispiel oben nur die Zeile 16 auszugeben?

Ich trau mich jezz' nich'.....

Ich sach ma so: Wieso lautet deine Eingabe jetzt "Friemler /?" und nicht "FindStr /?" ????

Tipp: Du willst doch eigentlich gar nicht allgemein nach "16" suchen, sondern exakt nach ":16:"[Doppelpunkt-16-Doppelpunkt].
Denn so liefert es Findstr doch (sagtest du hier : " test.txt:16:er " ).

Ich brauch Urlaub....
Biber
Member: brammer
brammer Aug 05, 2010 at 12:55:14 (UTC)
Goto Top
Hallo,

@Biber
mal den Urlaubsschein von Biber abzeichnet.
und sich solange um die hilfsbedürftigen rothaarigen Praktikantinnen von Biber kümmert

brammer
Member: hiob08
hiob08 Aug 05, 2010 at 13:15:34 (UTC)
Goto Top
Hallo Biber,

auf die gleiche gloreiche Idee bin ich vorhin auch gekommen und hab die Zeile entsprechend geändert:

for /f "delims=: tokens=1,*" %%i in ('findstr /n . "%%a" ^| findstr "%%~nxi:!theNextLine!"') do (   
     echo %%j>>"%destfile%"  

Ergebnis: nichts! Hab mich gewundert und nochmal findstr /n . test.txt in die Konsole eingetippt und muss feststellen,
dass mir - bei richtiger Syntax - der Dateiname vor der Zeilennummer nicht angezeigt wird!!! Verflucht seist du, findstr!

hier nochmal der Beweis :

C:\Users\Admin\Desktop\Test>findstr /n . test.txt
1:asfd
2:safd
3:as
4:df
5:sa
6:f
7:safd
8:as
9:fd
10:sa
11:f
12:sadf
14:sadf
16:sadf
17:a
18:sf
19:sad
20:f
21:as
22:fd
23:sa
24:ddf
25:sa
26:fd
27:as
28:f
29:asd
30:sadf
C:\Users\Admin\Desktop\Test>findstr /n . test.txt ^
Mehr?
Mehr?
bla.txt:1:asfd
bla.txt:2:safd
bla.txt:3:as
bla.txt:4:df
bla.txt:5:sa
bla.txt:6:f
bla.txt:7:safd
bla.txt:8:as
bla.txt:9:fd
bla.txt:10:sa
bla.txt:11:f
bla.txt:12:sadf
bla.txt:14:sadf
bla.txt:16:sadf
bla.txt:17:a
bla.txt:18:sf
bla.txt:19:sad
bla.txt:20:f
bla.txt:21:as
bla.txt:22:fd
bla.txt:23:sa
bla.txt:24:ddf
bla.txt:25:sa
bla.txt:26:fd
bla.txt:27:as
bla.txt:28:f
bla.txt:29:asd
bla.txt:30:sadfFINDSTR:
 kann nicht geöffnet werden.

Bieber /?
Friemler /?

:D
Member: Friemler
Friemler Aug 05, 2010 at 13:26:18 (UTC)
Goto Top
Hallo hiob08,

es ist ja schonmal löblich, daß Du Dich mit den Parametern des FINDSTR-Befehls beschäftigt hast (Du hast $ durch . ersetzt). Dann hätte Dir aber auch der Parameter /B auffallen müssen, der bewirkt, daß FINDSTR am Anfang einer Zeile sucht. Außerdem hatte ich das in meiner Erklärung weiter oben erwähnt, als Antwort auf Deine Frage, was das $-Zeichen beim FINDSTR-Befehl bewirkt. Mein Code hat dieses /B auch enthalten, Du hast es gelöscht.

Warum das bei Dir statt mit $ nur mit . funktioniert (der Punkt steht ja für EIN beliebiges Zeichen) ist mir sowieso schleierhaft.

Schau Dir auch nochmal mein allererstes Posting an, wo ich das Skript veröffentlicht habe, ich habe am Text nochmal was geändert.

Gruß
Friemler


[Edit]
Und jetzt ist für mich hier Schluss! Start->Ausführen->brain.exe [ENTER]
Member: Biber
Biber Aug 05, 2010 at 13:44:10 (UTC)
Goto Top
Moin hiob08,

Zitat von @hiob08:
hier nochmal der Beweis :

C:\Users\Admin\Desktop\Test>findstr /n . test.txt
1:asfd
2:safd
C:\Users\Admin\Desktop\Test>findstr /n . test.txt ^
Mehr?
Mehr?
bla.txt:1:asfd
bla.txt:2:safd

Einen Satz wie den fett hervorgehobenen gefolgt von den darunterstehenden Details... das hat schon westerwellesche Dimensionen.

Der (bzw, EIN wichtiger) Unterschied der beiden FindStr-Varianten ist, dass
  • die erste GENAU EINE DATEI durchflöhen soll.
  • die zweite denkt, es könnte mehrere kommen [wegen des "^"-Caret-Zeichens.

--> Das Caret-Zeichen ist hier zum Test/beim Proof-of-Concept vollkommen falsch und auch die "Mehr?... FindStr..Nicht gefunden"-Meldungen kommen daher.
---> Einfach "^" nicht benutzen.... ist nicht zielführend und überhaupt nicht wesentlich.

Die unterschiedlichen Ausgaben kannst du reproduzieren mit
[Zeilen mit führendem ">" OHNE dieses ">" eintippseln]

  
> echo xx >temp23456.bla
>findstr /n . temp23456.bla
1:xx

>findstr /n . temp23456.bla?
temp23456.bla:1:xx

WENN du denn die zweite Ausgabeform MIT Dateinamen besser brauchen kannst
--> DANN hänge ein Wildcard-? an deinen Dateinamen.

Grüße
Biber

P.S. @brammer:
Wieso sollte ich meine Praktikantinnen denn zurücklassen?
Wir machen Fusskettchentauchen am Roten Meer...
Member: hiob08
hiob08 Aug 05, 2010 at 13:53:22 (UTC)
Goto Top
Hallo Friemler,

vielen Dank für den wertvollen Tip mit /b.
Ich habe mir heute mindestens 20 mal die Hilfe zu findstr aufgerufen, aber wahrscheinlich vor lauter Bäumen den Wald nicht gesehen..
Auf jeden Fall funktioniert es nun problemlos!

Vielen Dank nochmal für deine Hilfe und vor allem Geduld!
Member: cced-de
cced-de Sep 05, 2018 updated at 09:20:34 (UTC)
Goto Top
Hallo,
auch wenn dieses Thema schon recht alt ist, möchte ich es noch einmal aufgreifen..
Ich möchte per Batch und mit externen Tools ( PSFile )und (WInput) 1. feststellen welcher User welche Files auf einem bestimmten Server geöffnet hat, und 2. diese Sessions ggf.schließen. Allerdings bekomme ich bei meinem Script leider nicht nur die Files des gesuchten Users, sondern auch noch einige andere (oder manchmal auch KEINE , obwol es geöffnete Dateien gibt). Das darf natürlich nicht passieren... Es soll sowohl das geöffnete File, als auch die "Locks" angezeigt werden.
Bin sehr auf eure Tips gespannt und bedanke mich schon hetzt für eure Hilfe.

Hier mein Script

@echo off 
setlocal enabledelayedexpansion 

:start
cls
REM ----------- Variablen setzen --------------

Set "fname=%temp%\openfiles.txt"  
Set "destfile=con"  
Set /P "Servername=Servername: "  
Set /P "Username=Username: "  
del %destfile% 2>NUL

REM ----------- PSFile starten und Ausgabe in Txtdatei schreiben --------------
psfile \\%Servername% -nobanner >%fname%

REM ----------- Txtdatei auslesen, Usernamen suchen und geöffnete Files anzeigen --------------
for %%a in ("%fname%") do (  
  for /f "delims=:" %%b in ('findstr /i /n /r /c:"\<%Username%\>" "%%a"') do (  

    set /a theNextline=%%b-1 > NUL
    for /f "delims=: tokens=1,*" %%i in ('findstr /n $ "%%a" ^| findstr /b "!theNextLine!"') do (  
      if "%%j" neq "" echo %%j>>"%destfile%"  

    set /a theNextline=%%b+1 > NUL
    for /f "delims=: tokens=1,*" %%i in ('findstr /n $ "%%a" ^| findstr /b "!theNextLine!"') do (  
      if "%%j" neq "" echo %%j>>"%destfile%"  
     )  
    )
  )
)

echo.
REM ----------- Auswähren ob File geschlossen werden soll --------------
CHOICE /C JNX /M "Soll der Zugriff beendet werden? [J]a | [N]ein [X] - Abbruch"  
echo.
if errorlevel = 3 goto end
if errorlevel = 2 goto start
if errorlevel = 1 goto close

:close
REM ----------- File soll geschlossen werden --------------
REM ----------- Adminname & Passwort abfragebn --------------
winput "set admin=$input" "Admin Name" >NUL  
winput "set pw=$input" "Admin PW" /pass >NUL  

REM ----------- FileID angeben --------------
Set /P fid=File id :

REM ----------- File schließen --------------
psfile \\%Servername% -u %admin% -p %pw% %fid% -c -nobanner

:noname
cls
Echo FEHLER: Kein Adminname angegeben
Timeout 10
goto start

:nopw
cls
Echo FEHLER: Kein Passwort angegeben
Timeout 10
goto start

:end
:eof
Member: Friemler
Friemler Sep 06, 2018 at 09:24:07 (UTC)
Goto Top
Hallo @cced-de,

in diesem Forum ist es unüblich, sich an einen bestehenden Thread anzuhängen. Öffne bitte einen neuen Thread für Dein Problem, damit erzielst Du mehr Aufmerksamkeit und erhältst evtl. auch schneller Hilfe.

Grüße
Friemler
Member: cced-de
cced-de Sep 06, 2018 at 09:45:01 (UTC)
Goto Top
Alles klar, Danke