wie macht man eine bat-datei auf usb?

1925
mina nageh

Ich möchte eine Batch-Datei erstellen, die mehrere Programme wie das Einrichten von Treibern wie dieses öffnet

cd\ D: (the usb drive letter ) start sound driver.exe start tochpad driver.exe 

Nur beim Öffnen der Batchdatei von der Festplatte des Computers, nicht des USB-Sticks.

Und das Problem ist, dass die USB ihren Laufwerksbuchstaben auf jedem einzelnen Computer ändert.

wie macht man eine bat-datei auf usb?

0
die Programme, die ich ausführen möchte, sind in der usb nicht die Festplatte mina nageh vor 7 Jahren 0
Warum nicht den Stapel auf den Stift legen? Seth vor 7 Jahren 0
weil ich es von der Festplatte starten will mina nageh vor 7 Jahren 0
Ja, aber was ist der eigentliche Grund dafür? Warum sollten Sie diesen Stapel auf der Festplatte haben (wie kommt er dorthin?), Aber nicht die entsprechenden Treiberdateien? Hat dir die Schleifenmethode geholfen? Seth vor 7 Jahren 0
nein es hat mir nicht geholfen, weil ich nicht wusste, wie man es benutzt ... es funktionierte und zeigte mir den USB-Laufwerksbuchstaben, aber wie kann ich es verwenden ... der, der mit mir gearbeitet hat, ist dies ----- - @echo off für / F "tokens = 1 *" %% a in ('fsutil fsinfo-Laufwerke') do (für %% c in (%% b) do (für / F "tokens = 3" %% d in.) ('fsutil fsinfo Laufwerkstyp %% c') do (wenn %% d equ entfernbar ist (echo Laufwerk %% c ist entfernbar (USB ^))))) mina nageh vor 7 Jahren 0
Geben Sie keinen Code in Kommentaren ein. ;) Herausfinden, was den Laufwerksbuchstaben anzeigt und von dort aus arbeiten. Dort möchten Sie, dass Ihr Code verwendet wird. Seth vor 7 Jahren 0
Ich habe versucht, wusste aber nicht, wie ich den erscheinenden Laufwerksbuchstaben verwenden soll ... bitte helfen Sie mina nageh vor 7 Jahren 0
Sie haben also keine Ahnung, was Sie tatsächlich tun? Ersetzen Sie einfach "D:" in Ihrem Beispiel durch "%% c". Seth vor 7 Jahren 0
Es wird also so aussehen, als wäre @echo für / F "tokens = 1 *" %% a in ('fsutil fsinfo-Laufwerke') do (für %% c in (%% b) do (für / F "tokens = 3") %% d in ('fsutil fsinfo Laufwerkstyp %% c') do (wenn %% d equ entfernbar ist (echo Laufwerk %% c ist entfernbar (USB ^)))) cd \ %% c: Start sound driver.exe start tochpad driver.exe mina nageh vor 7 Jahren 0
weil es bei mir nicht funktioniert hat http://postimg.org/image/6uekcro3p/ mina nageh vor 7 Jahren 0
Geben Sie keinen Code in die Kommentare ein. Ihr Code ist falsch. Das %% c hat am Ende kein: und ist der falsche Ort. Es muss in der Schleife sein, nicht dahinter. Sehen Sie sich die Formatierung in meiner Antwort an und stellen Sie sie auf die gleiche Ebene wie das Echo. Seth vor 7 Jahren 0
Arbeitete nicht auch http://postimg.org/image/tkcqfpx0l/ mina nageh vor 7 Jahren 0
der erste zeigte nichts mina nageh vor 7 Jahren 0
DANKE, DASS ICH DAS PROBLEM GEFUNDEN WURDE, DASS DIESER DRIVE-BUCHSTABE NICHT IN DIESEM GEBRAUCH WAR (D: E: F: G: H: I: usw.) mina nageh vor 7 Jahren 0
Schön, dass es geholfen hat. Alternativ können Sie "cd / D %% c" verwenden, das auch mit der Methode "fsutil" funktionieren sollte. Seth vor 7 Jahren 0

2 Antworten auf die Frage

1
Seth

Legen Sie eine Art Identifikationsdatei auf das Laufwerk und wiederholen Sie die Laufwerke. Wenn Sie die genannte Datei finden, wissen Sie, dass Sie den Pendrive gefunden haben. Dies funktioniert nicht mehr, wenn die Datei nicht vorhanden ist.

Ein Beispiel dafür wäre: USB erkennen und kopieren . USB-Laufwerk mit Batch-Skript

Demnach wäre der einfache Weg der folgende Weg, wenn eine Datei namens "USB.txt" angenommen wird:

@echo off for %%d in (D: E: F: G: H: I: etc...) do ( if exist %%d\USB.txt ( echo USB at drive %%d connected %%d start sound driver.exe start tochpad driver.exe ) ) 

Für eine bessere Lösung überprüfen Sie die Frage, die ich verlinkt habe. Das Obige hat bereits mehrere Fallstricke, da jemand A: und B: als normale Laufwerksbuchstaben verwenden kann oder die USB.txt möglicherweise nicht vorhanden ist.

Wenn Sie die "korrigierte" Lösung aus dieser Frage betrachten, wäre dies:

@echo off for /F "tokens=1*" %%a in ('fsutil fsinfo drives') do ( for %%c in (%%b) do ( for /F "tokens=3" %%d in ('fsutil fsinfo drivetype %%c') do ( if %%d equ Removable ( echo Drive %%c is Removable (USB^) %%c start sound driver.exe start tochpad driver.exe ) ) ) ) 

Soweit ich das fsutilbeurteilen kann, müssen Sie mit Administratorrechten ausgeführt werden, sodass Sie darauf achten müssen, je nachdem, was Sie tun.

0
Yorik

Ich glaube, wenn Sie die bat-Datei im Explorer anklicken (ausführen), wird das aktuelle Verzeichnis auf den Speicherort der Batch-Datei gesetzt.

Wenn Ihre Batch-Datei also in einem Verzeichnis auf dem USB-Stick gespeichert ist und ausgeführt wird, befinden Sie sich bereits in einem Verzeichnis, das diesen Laufwerksbuchstaben enthält. Sie müssen die Laufwerke nicht wechseln, so dass Sie sie nicht angeben müssen.

Verwenden CD \Sie einfach die Option, die sicherstellt, dass Sie sich auf der Root-Ebene des Laufwerks befinden, auf dem Sie sich befinden.

Sie müssen auch keinen Laufwerksbuchstaben verwenden, um auf andere Verzeichnisse auf demselben Laufwerk zuzugreifen. Wenn Sie sich in dem Ordner befinden c:\temp:

123\file.txtist äquivalent zu c:\temp\123\file.txt(kein führender Schrägstrich, daher wird der Pfad zum aktuellen Pfad hinzugefügt)

\123\file.txtist äquivalent zu c:\123\file.txt(führender Schrägstrich), daher wird der Pfad nur zum Laufwerksbuchstaben hinzugefügt (als "root" bezeichnet).

Dies kann etwas kompliziert werden, wenn Sie andere Stapeldateien aus der Stapeldatei heraus starten, die auch wissen müssen, in welchem ​​Verzeichnis sie sich befinden. Ich glaube nicht, dass Sie sich aufgrund Ihres Beispiels in dieser Situation befinden.

Weitere Informationen zum Auffinden des aktuellen Arbeitsverzeichnisses finden Sie unter ( https://stackoverflow.com/questions/16255184/ ).

Beachten Sie auch, dass Sie in Ihrem Beispiel zuerst auf das richtige Laufwerk * ​​wechseln und dann mit `cd` in das gewünschte Verzeichnis wechseln. In Ihrem Beispiel hätte es trotzdem funktioniert, aber wenn Sie "cd \ temp" und dann "d:" hätten, wären Sie nicht in "d: \ temp" gewesen Yorik vor 7 Jahren 0
bro Ich weiß alles, was Sie eingegeben haben. Was ich tun möchte, ist, die Batch-Datei von einer Partition des PCs zu starten, um ein Programm in der USB zu öffnen. Und ich muss die Batch-Datei automatisch zum USB-Laufwerksbuchstaben machen und verwenden weil es sich jedes Mal ändert mina nageh vor 7 Jahren 0
Für Batches können Sie auch [`~ dp0] (http://stackoverflow.com/questions/5034076/what-does-dp0-mean-and-how-dow-does-it-work) verwenden, indem Sie` cd / D verwenden `Es würde die Laufwerksänderung sicherstellen. Seth vor 7 Jahren 0
dies die bat-Datei start sound driver.exe start tochpad driver.exe ..... kann jeder für mich bearbeiten, weil ich die Methode NB nicht verstanden habe. diese dateien befinden sich im usb mina nageh vor 7 Jahren 0