goozegooze
Goto Top

autoinf batch

Hi Leute.
Bin das erste Mal hier, und hoffe hier Hilfe zu finden.
Ein großes Dankeschön schon einmal im Vorraus.

Ist es möglich, dass man die Autoinf bzw. die dazugehörige .bat Datei, so schreiben kann, dass die Programme direkt starten, sobald ich den USB-Stick
am PC anschließe?

Als Beispiel.

[autorun]
open=launch.bat
ACTION= Adressbuch

Wie man hier sieht, wird die launch.bat gestartet, nach dem ich meinen USB-Stick eingesteckt habe. Das Windows Fenster öffnet sich, indem ich dann als erste Auswahl, Adressbuch habe, um eben das entsprechende Prgramm zu starten. Mein Anliegen ist nun, ob man die Autoinf. eben so schreiben kann, dass das Windows Fenster sich gar nicht erst öffnet, sondern die Programme direkt, nach anschließen des USB-Sicks, gestartet werden.

Wäre echt dankbar, wenn man mir da helfen könnte.
Gruß.

Content-ID: 127332

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

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

rubberman
rubberman 17.10.2009 um 17:51:20 Uhr
Goto Top
Hallo goozegooze,

mit Batch hat das ganze eigentlich reichlich wenig zu tun (mal abgesehen davon, dass du ein Batchfile starten willst).
Ich bin einigermaßen überrascht, dass ein Autorun auf deinem Stick überhaupt noch möglich ist. Bei mir gehts seit Ewigkeiten nicht mehr, da Windows die Sicherheitsdaumenschrauben hier immer mehr anzieht.
Aber gut. Was grundsätzlich zusagen ist:
Die Datei muss zwingend "autorun.inf" heißen und im Rootverzeichnis deines Sticks liegen.
Falls es noch funktioniert, könnte das ganze dann so aussehen:
[autorun]
shellexecute=launch.bat
action=Adressbuch
useautoplay=1
Das ganze ohne Gewähr. Wenns nicht funktioniert, beschwehr dich bei M$.

Grüße
rubberman
goozegooze
goozegooze 17.10.2009 um 19:26:24 Uhr
Goto Top
Hallo,
Großmeister rubberman,grins.

Danke für deine Hilfe, das funktioniert sogar ganz wunderbar.

Kann es sein, dass es an meiner XP Version liegt, dass die schon zu alt ist, und die Sicherheitsstandards eben veraltet sind?

M$ Windows XP
Professional
Vers. 2002
SP 3


Da wir beim Thema sind, und ich nicht einen weiteren Thread eröffnen muß, hier noch eine Frage, zu der Batchfile selbst.

Also, wie gesagt, dass Programm, welches gestartet wird, heißt Adressbuch.exe.
Die Exedatei selbst, gibt alle Werte, als Adressbuch.cfg Datei aus, welche verschlüsselt ist.
Damit ich nicht immer das Programm öffnen muß, um die Daten anzusehen, habe ich in der Batchfile angegeben, dass die Ausgabedatei,
als Adressbuch.txt ausgegeben wird, Die Datei wird in das selbe Verzeichnis wie die Autoinf. und die Bachdatei
geschrieben. Also ins Rootverzeichnis vom USB-Stick.
Der Eintrag in der Batchdatei lautet wie folgt.

start Adressbuch.exe /stext Adressbuch.txt

Das Problem dabei ist, wenn ich nun den USB-Stick entferne, und wieder anschließe, werden die Daten in die selbe Datei geschrieben.
Was kann ich tun, bzw. welchen Befehl gibt es, dass das Programm, bzw. die Batchdatei, die Dateien fortlaufend schreibt.
Beispiel:
01.USB-Stick anschließen, Ausgabe = Adressbuch001.txt
02.USB-Stick entfernen, wieder anschließen.
Jetzt soll hier nicht in der ersten Datei weitergeschrieben werden, und auch nicht überschrieben werden, sondern, es soll nun eine Ausgabedatei
mit dem Namen Adressbuch002.txt erstellt werden. Und das Ganze immer fortlaufend. Adressbuch003.txt, Adressbuch004.txt, Adressbuch005.txt usw.

Wenn es an meiner XP Vers. liegt, wie müßte die Autoinf. dann geschrieben sein, damit es bei Vista und Win7 funktioniert?
Also, ich habs auf einem Vista bzw. Win7 Rechner noch nicht ausprobiert.

Also wirklich,
danke vielmals.
Gruß.
rubberman
rubberman 17.10.2009 um 20:10:10 Uhr
Goto Top
Hallo goozegooze,

danke für den Großmeister, allerdings fangen die in diesem Bereich des Forums mit B und b an. Da kann ich mit großer Wahrscheinlichkeit bis zum Ende meiner Tage nicht mithalten.

Zu deiner Frage:
1. Über ein IF EXIST kannst du abfragen, ob eine Datei bereits existiert. Ggf. nimm doch einfach Datum und Uhrzeit als Dateinamen an?!
2. Ja, wahrscheinlich sind die entsprechenden Sicherheitsupdates noch nicht bis zu deinem Rechner vorgedrungen.
3. Afaik wird das ganze auf Vista und Win7 von vorn herein nicht mehr funktionieren. Dazu kommt noch die schlechte Nachricht, dass du wahrscheinlich keine Chance hast, daran was zu ändern.

Arbeite hier selbst auf Win XP Home SP3, darum kann ich nicht mit Sicherheit behaupten was ich oben geschrieben habe. Nur soviel: Auf meiner Büchse und den XP-Rechnern auf die ich Zugriff habe funktioniert Autorun auf USB-Drives nicht mehr.

Grüße
rubberman
schregi82
schregi82 17.10.2009 um 20:25:34 Uhr
Goto Top
servus,

such mal nach DriveExecuter auf http://www.trinium.de/
goozegooze
goozegooze 17.10.2009 um 20:39:50 Uhr
Goto Top
Also verstehe ich das richtig, dass, wenn ich mit meinem System in der Gegenwart angekommen bin, gibt es kein Autoplay für USB-Sticks mehr?Also wirklich gar keine Möglichkeit mehr, den USB-Stick, und die Progamme auf eine andere Art entsprechend zu starten? Is ja kacke.

Zu 1. Welchen Befehl muß ich da in der Batchdatei eingeben,
damit das überprüft wird?
Ich hatte gerade eben nachgesehen, aber keinen Thread darüber gefunden. Wenn du einen Link hättest, wäre auch ganz hilfreich.

Gruß.
goozegooze
goozegooze 17.10.2009 um 20:54:30 Uhr
Goto Top
@schregi82

Ich habe die Datei runtergeladen und die exe geöffnet.
Was kann ich da jetzt mit machen?
rubberman
rubberman 17.10.2009 um 20:57:57 Uhr
Goto Top
Hallo goozegooze,

versuchs mal so:
@echo off &setlocal enabledelayedexpansion
for /l %%i in (1001,1,1999) do (
  set "zahl=%%i"  
  if not exist Adressbuch!zahl:~1!.txt goto weiter
)
goto :eof
:weiter
start Adressbuch.exe /stext Adressbuch%zahl:~1%.txt

@schregi82
netter Link. Hab ich mir bereits ähnlich per VBS gebastelt. Leider ist das kein wirklicher Ersatz für den Autorun, da das ganze nur auf den Rechnern funktioniert, auf denen das Programm lokal eingerichtet ist.

Grüße
rubberman
goozegooze
goozegooze 17.10.2009 um 21:17:33 Uhr
Goto Top
Also, ich hab das mehrere Male versucht, aber es wird nur eine Datei erstellt. Bei mehreren Male starten der exe. wird in die Datei auch nicht weiter reingeschrieben, wie es bisher war, und sie wird auch nicht überschrieben.
Sie bleibt so bestehen wie sie beim ersten Mal ausgegeben wird, selbst wenn die Daten, die ausgegeben werden sollen, andere sind.

Der Name der Ausgabedatei sieht dann so aus.
Adressbuch%zahl:~1%.txt

Trotzdem vielen Dank für deine Mühe.
rubberman
rubberman 17.10.2009 um 21:26:17 Uhr
Goto Top
Hmm, kann ich mir gar nicht vorstellen. Kannst du mal dein komplettes Script posten?

Grüße
rubberman
goozegooze
goozegooze 17.10.2009 um 21:35:11 Uhr
Goto Top
start adressbook1.exe /stext adressbook1.txt

start adressbook2.exe /stext adressbook2.txt

start adressbook3.exe /stext adressbook3.txt

dir c:/adressbook /F >\dirlaufwerkCadressbook.txt


Von jedem dieser Befehle, soll eine fortlaufende Ausgabedatei erstellt werden.
goozegooze
goozegooze 17.10.2009 um 21:38:45 Uhr
Goto Top
Entschuldigung.

Hier mein Fehler

Die Ausgabedatei sieht so aus.

Adressbuch~1%.txt

nicht wie oben angegeben.
rubberman
rubberman 17.10.2009 um 21:57:38 Uhr
Goto Top
Ähm, irgendwie kann ich nicht glauben, dass dein Script so aussieht. Gibt es wirklich eine adressbook1.exe und eine adressbook2.exe?
Was soll diese Zeile tun?:
dir c:/adressbook /F >\dirlaufwerkCadressbook.txt

Hab eine ganze Weile probiert nachzustellen, wie der Dateiname bei dir zustande kommt - ohne Ergebnis.
Hast du in der ersten Zeile das "setlocal enabledelayedexpansion"? Sieht der übergebene Dateiname wirklich so aus: "Adressbuch%zahl:~1%.txt", insbesondere Position und Anzahl der Prozentzeichen?

Grüße
rubberman
goozegooze
goozegooze 17.10.2009 um 22:09:53 Uhr
Goto Top
Ich hab das eben noch mal gemacht, und jetzt wurde die Datei so
ausgegeben, als
Adressbuch001.txt
Bei nochmaligem ausführen der exe bleibt das Problem, dass keine fortlaufenden Dateien geschrieben werden, bestehen.

Ok, ich hab mit der Materie nichts am Hut, bin schließlich Frau,grins.

Diese Zeile, soll alle, sich in dem Verzeichnis befinden Ordner und Unterordner, aufzeigen und in einer Textdatei ausgeben.
Wie wenn ich in der Eingabeaufforderung z.Bsp. den Befehl tree eingebe.

Als Beispiel:
tree c: /F >\treelaufwerkC.txt

hier werden alle Verzeichnisse, und Unterverzeichnisse in einer Textdatei ausgegeben.

Ich finde das echt bewundernswert, dass du dich da so reinhängst, um mir zu helfen. Kann man hier irgendwo eine Spende tätigen?
rubberman
rubberman 17.10.2009 um 22:31:22 Uhr
Goto Top
Hallo goozegooze,

kann leider immer noch nicht nachvollziehen, warum das nicht funktionieren soll, es sei denn du startest nur die exe noch einmal, nicht aber die bat?!

Was die andere Zeile angeht: Es gibt keine Option /F beim DIR-Befehl, dort ist es die Option /S. Also vermutlich (falls der Slash ein Backslash sein soll) so:
dir /s c:\adressbook  >\dirlaufwerkCadressbook.txt

Im übrigen, wer hier hilft, macht das ganz freiwillig.

Grüße
rubberman
bastla
bastla 17.10.2009 um 22:37:18 Uhr
Goto Top
Hallo goozegooze und willkommen im Forum, hallo rubberman!

Ich klinke mich mal kurz zum Thema "nummerierte Dateien" an dieser Stelle ein ...

Das Weiterzählen sollte sich (am Beispiel von "adressbook1") etwa so machen lassen:
@echo off & setlocal
set "Letzte=1000"  
for /f "delims=" %%i in ('dir /b /on adressbook1*.txt 2^>nul') do set "Letzte=%%~ni"  
set /a Nr=1%Letzte:~-3%+1 2>nul
if "%Nr%"=="" set Nr=1001  
start adressbook1.exe /stext adressbook1%Nr:~-3%.txt
Damit sollten dann "adressbook1001.txt", "adressbook1002.txt", ..., "adressbook1999.txt" entstehen.

Falls es tatsächlich auch "adressbook2.exe" und zugehörige "adressbook2xxx.txt" geben soll, einfach die Zeilen 2 bis 6 kopieren und anpassen (eine zusätzliche Schleife zahlt sich wohl nicht aus) ...

Grüße
bastla

[Edit] Berechnung der nächsten Nr noch etwas abgesichert [/Edit]
rubberman
rubberman 17.10.2009 um 22:44:26 Uhr
Goto Top
Hallo bastla,

das merkwürdige Verhalten bei goozegooze erklärt das aber noch nicht. Irgend eine Idee, warum... ?

Grüße
rubberman
goozegooze
goozegooze 17.10.2009 um 22:51:08 Uhr
Goto Top
Jawolle Leute.
Das hat es gebracht.
Super Leistung von euch, und ganz herzlichen Danke dafür.

Nur noch eine letzte Frage.

Wie lässt sich dieses Modell jetzt auf die Befehle
tree
und
dir
anwenden?

@rubberman
Merkwürdises Verhalten?
Ich arbeite bei meinem Vater in der Firma, als Sekretärin,
und da ich diese Daten ständig brauche, und diese sich ständig ändern, und ich
keine Lust habe sie ständig abzutippen, wird mir das dadurch
sehr viel einfacher gemacht.
Was soll daran merkwürdig sein?
bastla
bastla 17.10.2009 um 23:00:55 Uhr
Goto Top
Hallo goozegooze!

Mit
adressbook1%Nr:~-3%.txt
wird der Dateiname zusammengesetzt aus "adressbook1", den letzten 3 Stellen des Variableninhaltes von %Nr% (also wird zB aus 1003 die laufende Nummer "003") und ".txt" - nach dem gleichen Schema kannst Du die Zieldatei für die Ausgabeumleitung auch bei "dir" oder "tree" angeben, also etwa
tree C:\ /f>treelaufwerkC%Nr:~-3%.txt
wobei Du natürlich, wie oben angermerkt, die Ermittlung der Nummer unter Verwendung der Zeilen 2 bis 6 mehrmals (einfach kopieren und zB an den Dateinamen "treelaufwerkC" in den Kopien der Zeilen 3 und 6 anpassen) vornehmen musst.
Merkwürdises Verhalten?
rubberman hatte doch "bei" und nicht "von" geschrieben ...

@rubberman: Habe ich mir noch nicht angesehen ...

Grüße
bastla
rubberman
rubberman 17.10.2009 um 23:05:04 Uhr
Goto Top
*lol* Nicht dein merkwürdiges Verhalten, sondern das deines Batchfiles natürlich, was die Numerierung angeht (anging).

Was meinst du mit "auf die Befehle tree und dir anwenden"? Sollen die Dateinamen hier auch hochgezählt werden?

Grüße
rubberman
goozegooze
goozegooze 17.10.2009 um 23:39:15 Uhr
Goto Top
Ja, genau.
Das die auch fortlaufend hochgezählt werden.

Also irgendwas stimmt hier im Forum auch nicht.

Ich mußte, seit ich hier registriert bin, schon 5 mal mein Passwort zurücksetzen lassen, um mich wieder einloggen zu können.

Die, die mir hier bisher geholfen hatten, ein ganz großes Dankeschön.
goozegooze
goozegooze 18.10.2009 um 06:51:27 Uhr
Goto Top
Jetzt hab ich das mal gecheckt.
Wenn ich mich anmelde, darf ich nach Eingabe von
UN: und PW: nicht Enter drücken, sondern muß auf den Pfeil klicken.
grins.

Als erstes Mal, sorry an rubberman. Ich hatte das mit merkwürdig falsch verstanden. lol.

@bastla
Ich hatte jetzt die ganze Zeit an der File rumgebastelt, doch das einzige was ich zustande kriegte, war, dass die Ausgabedatei mit der korrekten Bezeichnung, und fortlaufend ausgegeben wird, aber
die Daten, die
tree / dir
ausgeben, werden nicht in die Datei geschrieben, sondern laufen in der Eingabeaufforderung den Bildschirm runter, ohne das etwas in die Datei geschrieben wird.
LG.

ps: so hatte ich das geschrieben.
set "Letzte=1000"   
for /f "delims=" %%i in ('dir /b /on treelaufwerkC*.txt 2^>nul') do set "Letzte=%%~ni"   
set /a Nr=1%Letzte:~-3%+1 2>nul 
if "%Nr%"=="" set Nr=1001   
start tree C:\ /f>treelaufwerkC%Nr:~-3%.txt

da müßte doch jetzt noch irgendwo der Befehl \stext rein,oder?

Ahm, dass mit den exe.Dateien funktioniert Einwandfrei.
Danke noch mal.


[Edit Biber] Codeformatierung nachgezogen/vorgeturnt.[/Edit]
bastla
bastla 18.10.2009 um 11:51:48 Uhr
Goto Top
Hallo goozegooze!

Deine Zeile 04 (eine adäquate Formatierung für das Posten von Batches bekommst Du übrigens wie beschrieben hin) sollte so
tree C:\ /f>treelaufwerkC%Nr:~-3%.txt
funktionieren (mit Doppelpunkt nach "Nr"). Die Schreibweise mit "/stext" ist eine Spezialität Deines "adressbook"-Programmes, und "start" benötigst Du hier auch nicht.

Je nach der Art der Weiterverarbeitung der erzeugten Datei könnte übrigens noch der zusätzliche Schalter "/a" des "tree"-Befehles nützlich sein ...

Um mehr über die Möglichkeiten eines Befehles (wie zB "dir" oder "tree") zu erfahren, kannst Du die Onlinehilfe mit zB
dir /?
aufrufen (sinnvoller Weise direkt von der mit "cmd" gestarteten Eingabeaufforderung aus).

Grüße
bastla
goozegooze
goozegooze 18.10.2009 um 17:27:39 Uhr
Goto Top
Danke für eure Hilfe noch mal.
Ja, ich hatte doch noch rausgefunden, dass ich in der 4. Zeile, start gar nicht brauch, aber konnte es leider nicht posten, weil ich nicht mehr hier ins Forum kam.

Irgendwas stimmt hier am login Script nicht, oder mache ich was falsch?

Ich mußte mein Passwort eben wieder zurücksetzen lassen, um mich einloggen zu können. Woran liegt das eigentlich.....ist dieses Problem bekannt?

Ich weiß, dass gehört wohl nicht hierher, aber ich weiß auch nicht wohin es gehört. Ich hatte bestimmt schon, seit meiner Registrierung, mein Passwort 15-20mal zurücksetzen müssen, um wieder hier reinzukommen.

Also, wie gesagt, danke euch für eure Hilfe.
LG.