laufwerksbuchstabe auslesrn und abspeichern
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
aktuelle verzeichnis
argument
auslese
befehl
beschreibung
datei
eindeutiger parameter
ersetzen
ersten gefundenen verzeichnisses
erweiterung
folgende tabelle
hilfe
information
laufwerk
parameter
pfad
programm
textdatei
verwenden
verzeichnis
-
ich habe ein bat script dass sich automatisch ausführt wenn ich meinen u3 stick anstecke und ich möchte den luafwerkbuchstaben vom stick (von dem auch das bat script ausgeführt wird) auslesen und abspeichern das abspeichern ist kein problem aber das auslesen des laufwerkbuchstaben habe ich bis jetzt nicht geschafft
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
%1 hat nicht funktioniert und überprüfen ob es irgendein luaufwerksbuchstabe nutzt mir auch nicht
wie ich oben geschreiben habe möchte ich den act. laufwerksbuchstabe auslesen und abspeichern -
Sehe ich anders:
Sollte deine Batch-Datei auf dem Stick z.B. example.bat heißen, kannst du ja nach dem selben System arbeiten. Du kannst einfach \"durchtesten\", wo die deine eigene Datei findest. Das ist dann der Stick!
Für Laufwerk D machst du das z.B. so:
if exist D:\\example.bat echo \"Laufwerk D:\" > xxx.txt
Dann hast du in der Datei xxx.txt den Text \"Laufwerk D:\" stehen.
Das kannst du natürlich für sämtliche Laufwerke machen, dann weißt du den Laufwerksbuchstaben vom USB-Stick.
Oder hab\' ich da was falsch verstanden? -
Das ist für mich aleine sehr gut möglich aber wenn ich dass scrip witergeben möchte oder mehrere sticks mit dem selben script anstecke dann passiert nichts
-
Das ist für mich aleine sehr gut möglich aber wenn ich dass scrip witergeben möchte oder mehrere sticks mit dem selben script anstecke dann passiert nichts
Ich hab\' so gegrübelt, weiß aber keine Lösung, wo du alleine mit Batch-Kommandos auskommst. Du könntest dir selbst ein kleines DOS-Programm (oder auch Win32-Konsolenprogramm) schreiben, das den Laufwerksbuchstaben in einer Textdatei ablegt, oder in der Errorlevel-Variable (oder einer benutzerdefinierten) einen entsprechenden Wert zurückgibt. Denn z.B. in Pascal (Delphi, und sicher auch in C, ... aber da weiß ich nicht, wie\'s geht :P ) kannst du mit Paramstr(0) den Pfad zurückgeben, von dem die EXE-Datei gestartet wurde. Wenn du nun den ersten Buchstaben der Zeichenkette in eine Textdatei schreibst, oder du speicherst sie in einer Umgebungsvariable (was glaub ich die bessere Lösung ist, da du im batch-Script gleich weiterarbeiten kannst damit), dann hast du die Info, die du benötigst, auch wenn\'s mehrere Sticks sind ... -
Hallo,
bin mir nicht ganz sicher ob dir das eine Hilfe ist, aber nur mal so als kleine Anregung.
das aktuelle Verzeichnis liest du einfach mit \"cd\" aus, die Ausgabe kannst du dann umleiten und dir später wieder aus dem File saugen (oder vielleicht aus Umgebungsvariable).
oder schau dir vielleicht mal \"popd\" und \"pushd\" an, vielleicht hilft dir das ja auch weiß ja nicht genau, was du machen willst
Rgds. -
tipp:
%0 ist immer der pfad der batch datei -
So, aufgrund der Hilfe von familie-schiffer hab ich in der Windows-Hilfe noch mal gebuddelt:
Verwenden von BatchparameternSie können Batchparameter überall innerhalb einer Batchdatei verwenden, um Informationen zu den Umgebungseinstellungen zu extrahieren.
Cmd.exe stellt die Batchparameter-Erweiterungsvariablen %0 bis %9 bereit. Wenn Sie Batchparameter in einer Batchdatei verwenden, wird %0 durch den Batchdateinamen ersetzt, und %1 bis %9 werden durch die entsprechenden Argumente ersetzt, die Sie in der Befehlszeile eingeben. Sie müssen den Befehl shift verwenden, um auf Argumente jenseits von %9 zuzugreifen. Weitere Informationen zum Befehl shift finden Sie unter Shift. Der Batchparameter %* ist ein Platzhalterverweis auf alle Argumente, mit Ausnahme von %0, die an die Batchdatei weitergegeben werden.
Geben Sie beispielsweise Folgendes in eine Batchdatei namens Meinbatch.bat ein, um den Inhalt von Ordner1 in Ordner2 zu kopieren, wobei %1 durch den Wert Ordner1 und %2 durch den Wert Ordner2 ersetzt wird:
xcopy %1\\*.* %2
Geben Sie Folgendes ein, um die Datei auszuführen:
meinbatch.bat C:\\ordner1 D:\\ordner2
Dies hat dieselbe Auswirkung wie das Eingeben des Folgenden in die Batchdatei:
xcopy C:\\ordner1 \\*.* D:\\ordner2
Sie können auch Parameter mit Batchparametern verwenden. Parameter verwenden die aktuellen Laufwerk- und Verzeichnisinformationen, um den Batchparameter zu einem teilweisen oder vollständigen Datei- oder Verzeichnisnamen zu erweitern. Geben Sie das Prozentzeichen (%) gefolgt von einer Tilde (~) ein, und geben Sie dann den entsprechenden Parameter ein (d. h. %~Parameter), um einen Parameter zu verwenden.
Die folgende Tabelle listet die Parameter auf, die Sie als Erweiterung verwenden können.
Parameter Beschreibung
%~1 Erweitert %1, wobei umgebende Anführungszeichen (\") entfernt werden
%~f1 Erweitert %1 zu einer vollständig qualifizierten Pfadbezeichnung.
%~d1 Erweitert %1 zu einem Laufwerkbuchstaben.
%~p1 Erweitert %1 zu einem Pfad.
%~n1 Erweitert %1 zu einem Dateinamen.
%~x1 Erweitert %1 zu einer Dateinamenerweiterung.
%~s1 Erweitert den Pfad, so dass nur der kurze Dateiname enthalten ist.
%~a1 Erweitert %1 zu Dateiattributen.
%~t1 Erweitert %1 zu den Datums- und Uhrzeitangaben der Datei.
%~z1 Erweitert %1 zu der Größe der Datei.
%~$PATH:1 Durchsucht die in der Umgebungsvariablen PATH aufgeführten Verzeichnisse und erweitert %1 zu dem vollständig qualifizierten Namen des ersten gefundenen Verzeichnisses. Wurde der Name der Umgebungsvariablen nicht definiert oder die Datei nicht gefunden, gibt der Parameter eine leere Zeichenfolge zurück.
Die folgende Tabelle listet mögliche Kombinationen aus Parametern und Kennzeichnern auf, die Sie verwenden können, um zusammengesetzte Ergebnisse zu erhalten.
Parameter Beschreibung
%~dp1 Erweitert %1 zu einem Laufwerkbuchstaben mit Pfadangabe.
%~nx1 Erweitert %1 zu einem Dateinamen mit Erweiterung.
%~dp$PATH:1 Durchsucht die in der Umgebungsvariablen PATH aufgeführten Verzeichnisse und erweitert %1 zu dem Laufwerkbuchstaben und Pfad des ersten gefundenen Verzeichnisses.
%~ftza1 Erweitert %1 zu einer dir-ähnlichen Ausgabezeile.
Anmerkung
In den vorherigen Beispielen können Sie %1 und PATH durch andere Batchparameterwerte ersetzen.
Der Parameter %* ist ein eindeutiger Parameter, der alle in einer Batchdatei weitergegebenen Argumente darstellt. Sie können diesen Parameter nicht in Verbindung mit dem Parameter %~ verwenden. Die Syntax %~ muss durch einen gültigen Argumentwert abgeschlossen sein.
Sie können Batchparameter nicht auf die gleiche Weise ändern wie Umgebungsvariablen. Sie können Werte nicht suchen und ersetzen oder untergeordnete Zeichenfolgen untersuchen. Sie können jedoch den Parameter einer Umgebungsvariablen zuweisen und dann diese ändern.
Demnach machst du den Laufwerksbuchstaben so in eine Textdatei:
echo %~d0 > laufwerk.txt
Das sollte die Lösung sein!
hth -
ich habe mitlerweile ein programm geschrieben dass den laufwerksbuchstaben in den temp order legt und hole mir ihn von dort wieder
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage