CD- ROM laufwerk in BatchDatei
Hallo,
ich habe eine Batchdatei, die mir von CD ein paar Dateien auf die Festplatte kopiert...
im Moment hab ich da einfach "Copy D:\test.exe C:\test.exe" stehen.
wenn das CD-ROM Laufwerk aber garnicht D: ist, funktioniert die Datei nicht - logisch !
gibt es irgendwie nen Platzhalter oder sowas den ich für das Laufwerk verwenden kann?
Danke für eure Antwort/en !
ich habe eine Batchdatei, die mir von CD ein paar Dateien auf die Festplatte kopiert...
im Moment hab ich da einfach "Copy D:\test.exe C:\test.exe" stehen.
wenn das CD-ROM Laufwerk aber garnicht D: ist, funktioniert die Datei nicht - logisch !
gibt es irgendwie nen Platzhalter oder sowas den ich für das Laufwerk verwenden kann?
Danke für eure Antwort/en !
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 18428
Url: https://administrator.de/contentid/18428
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
11 Kommentare
Neuester Kommentar
Du kannst für den kompletten Pfad oder für den Laufwerksbuchstaben allein einen Platzhalter lassen. BSP:
x.bat
copy %1:\test.exe c:\test.exe
nach dem Aufruf x.bat e wird folgendes ausgeführt: copy e:\test.exe c:\test.exe
das geht natürlich auch komplett und mit mehreren:
x.bat
copy %1:\%2.exe c:\%2.exe
nach dem Aufruf von x.bat e datei führt er aus: copy e:\datei.exe c:\datei.exe
x.bat
copy %1:\test.exe c:\test.exe
nach dem Aufruf x.bat e wird folgendes ausgeführt: copy e:\test.exe c:\test.exe
das geht natürlich auch komplett und mit mehreren:
x.bat
copy %1:\%2.exe c:\%2.exe
nach dem Aufruf von x.bat e datei führt er aus: copy e:\datei.exe c:\datei.exe
Mit Sachan á la <tt>x.bat d whatsoever</tt> würde beim zweiten Beispiel die Datei whatsoever.exe von D: nach C: kopiert werden. Am einfachsten wäre jedoch, irgendwie von der Kommandozeile aus das Dateisystem des aktiven Laufwerks rauszukratzen. Dann mit <tt>find "CDFS"</tt> (in einer Pipe) nach CD-Laufwerk überprüfen. Ich habe nur noch kein Statement gefunden, dass von einem beliebigen Laufwerk aus das Dateisystem anzeigt. format.com weigert sich vehemment CD-Laufwerke zu formatieren... *Geistesblitz* wie wäre es mit einer Sache wie
Du kannst dir natürlich die Arbeit machen, alle Buchstaben von a bis z in die äußere Schleife einzutragen. Einen Nachteil hat die ganze Apparatur aber, den ich nicht verschweigen will: Sollte das CD-Laufwerk mit einem NTFS-Pfad verknüpft sein, bekommst du es so nicht raus. Aber das ist dann deiner Phantasie überlassen.
for %%i in (a: b: c: d: e: f: g: h: i: j: k: l: m: n:) do (
for /f %%a in ('echo.^|format %%i') do (
if /i %%b==CD-Rom-Laufwerk (
copy %%i\MyFile.myext C:\
exit /b 0
)
)
Guten Abend,
@nullplan001
...Du machst aber ganz schön brutale Sachen... erstmal alle Laufwerke formatieren, und dasjenige, dass nicht formatiert werden kann, hat ein anderes FileSystem, ist also das CD-Laufwerk?? Und auf allen anderen Laufwerken hast Du erstmal einen übersichtlichen Zustand?? *luftschnapp*
@cimbala
Falls Du nullplan001s Idee noch nicht durchgezogen und noch nicht alles platt ist auf Deinen Laufwerken, dann hätte ich noch eine Alternativlösung.
Ist aber ein noch längerer Batch als der von nullplan. Egal, Copy & Paste..
Output bei mir:
...was auch stimmt.
Dort, wo jetzt "Echo CDROM ist %CDROM%:" steht, dort kannst Du statt dessen ein
"Copy %CDROM%:\test.exe C:\test.exe" ..hinschreiben.
Thats it. Was macht ihr denn da für ein Theater drum?
HTH Biber
---
P.S. Ich bin jetzt davon ausgegangen, dass EIN CDRom-Laufwerk da ist.
Genau genommen werden aber alle CD-Laufwerke gefunden und zurückgegeben und ich schreibe auf das letzte gefundene. Ist ja bei einem CD-Laufwerk egal.
Wer mehrere hat und das erste meint.
ERSETZE: FOR ....Do set "cdrom=%%i"
DURCH: : FOR .... Do if [%cdrom%]== set "cdrom=%%i"
--
P.P.S.
Habe grad gesehen, dass dieser Beitrag unter Installationsprogramme erstellt ist...
Also, wenn es um DEINE CD geht, von der Du die Daten auf anderer Leute Rechner kopieren willst - dann gib Deiner CD einen eindeutigen Datenträgernamen oder schreibe eine Datei "cimbala.001" auf die CD. Und das Laufwerk, auf dem im Root "cimbala.001" existiert, ist das CD-Laufwerk.
Diese Mimik machen auch ganz große Firmen.
@nullplan001
...Du machst aber ganz schön brutale Sachen... erstmal alle Laufwerke formatieren, und dasjenige, dass nicht formatiert werden kann, hat ein anderes FileSystem, ist also das CD-Laufwerk?? Und auf allen anderen Laufwerken hast Du erstmal einen übersichtlichen Zustand?? *luftschnapp*
@cimbala
Falls Du nullplan001s Idee noch nicht durchgezogen und noch nicht alles platt ist auf Deinen Laufwerken, dann hätte ich noch eine Alternativlösung.
Ist aber ein noch längerer Batch als der von nullplan. Egal, Copy & Paste..
::-------snipp BatCd.bat
@echo off & setlocal
Set "vbssnippet=%temp%\%random%.vbs"
>%vbssnippet% echo Set WSHShell = WScript.CreateObject("WScript.Shell")
>>%vbssnippet% echo For Each d in CreateObject("Scripting.FileSystemObject").Drives
>>%vbssnippet% echo if d.Drivetype=4 then wScript.Echo d.Driveletter
>>%vbssnippet% echo Next
For /F %%i in ('cscript //nologo %vbssnippet%') Do set "cdrom=%%i"
del %vbssnippet%
if [%CDROM%]== (ECHO Kein CDROM gefunden!) else Echo CDROM ist %CDROM%:
:: -----snapp BatCd.bat
>e:batcd
CDROM ist R:
Dort, wo jetzt "Echo CDROM ist %CDROM%:" steht, dort kannst Du statt dessen ein
"Copy %CDROM%:\test.exe C:\test.exe" ..hinschreiben.
Thats it. Was macht ihr denn da für ein Theater drum?
HTH Biber
---
P.S. Ich bin jetzt davon ausgegangen, dass EIN CDRom-Laufwerk da ist.
Genau genommen werden aber alle CD-Laufwerke gefunden und zurückgegeben und ich schreibe auf das letzte gefundene. Ist ja bei einem CD-Laufwerk egal.
Wer mehrere hat und das erste meint.
ERSETZE: FOR ....Do set "cdrom=%%i"
DURCH: : FOR .... Do if [%cdrom%]== set "cdrom=%%i"
--
P.P.S.
Habe grad gesehen, dass dieser Beitrag unter Installationsprogramme erstellt ist...
Also, wenn es um DEINE CD geht, von der Du die Daten auf anderer Leute Rechner kopieren willst - dann gib Deiner CD einen eindeutigen Datenträgernamen oder schreibe eine Datei "cimbala.001" auf die CD. Und das Laufwerk, auf dem im Root "cimbala.001" existiert, ist das CD-Laufwerk.
Diese Mimik machen auch ganz große Firmen.
@Biber: Nein, so radikal bin ich nun auch wieder nicht.
Die Zeile echo.|format %%i bewirkt lediglich eine Ausgabe wie:
Die 3 Meldungen stehen bei Win2k zur Auswahl. Durch das <tt>echo.</tt> wird das Programm sofort abgebrochen, ohne dass auch nur ein Bit formatiert wurde. Du musst mich doch echt für verrückt halten, öffentlich eine Batch-Möglichkeit zur Formatierung aller Festplatten in Reichweite zu posten. Spätestens übermorgen käme dann der neue gefährliche Wurm nullplans_idee.A raus und alles, was eins und eins zusammenzählen kann, flamet mich in Grund und Boden. Nee, nee, 'n bischen bescheuert sind wir ja alle, aber ganz blöd bin ich noch nicht.
Die Zeile echo.|format %%i bewirkt lediglich eine Ausgabe wie:
Der Dateityp des Datenträgers ist {NTFS|FAT}.
Ein CD-Rom-Laufwerk kann nicht formatiert werden.
Das angegebene Laufwerk wurde nicht gefunden
So, so, Markus,
dann lernen wir jetzt beide was, wie es auch in diesem Forum sein soll:
Bei mir (Win XP Prof) kommt heraus:
Geben Sie mit der Option /FS das Dateisystem an,
das Sie für dieses Volume verwenden möchten.
Geben Sie die aktuelle Volumebezeichnung für Laufwerk C: ein: Es wurde eine unzulässige Volumebezeichnung für dieses Laufwerk angegeben.
und drücken Sie die EINGABETASTE. Der Typ des Dateisystems ist FAT.
Überprüfung von 249 MB
FORMAT kann nicht ausgeführt werden, da das Volume von einem anderen
Prozess verwendet wird. Die Bereitstellung des Volumes muss zuerst
aufgehoben werden.
ALLE OFFENEN BEZÜGE AUF DIESEM VOLUME SIND DANN UNGÜLTIG.
Möchten Sie die Bereitstellung des Volumes aufheben? (J/N)
FORMAT kann nicht ausgeführt werden, da das Volume von einem anderen
Prozess verwendet wird. Die Bereitstellung des Volumes muss zuerst
aufgehoben werden.
ALLE OFFENEN BEZÜGE AUF DIESEM VOLUME SIND DANN UNGÜLTIG.
Möchten Sie die Bereitstellung des Volumes aufheben? (J/N) Das Laufwerk kann nicht gesperrt werden.
Das Volume wird verwendet.
~~~
~~~
Verständnis für meine Skepsis?
Somit denke ich, dass Deine Prüfung eventuell bei mir nicht funktionieren würde.
Aber für verrückt halte ich doch nicht deswegen - so sollte es nicht rüberkommen.
Und wenn cimbala W2k hat, hat er/sie ja vielleicht Deinen Lösungsweg schon gestern mit Erfolg ausprobiert.
**gg ... aber die Vorstellung, demnächst "nullplans_idee.A" im HiJackThis.Logfile oder bei Symantec lesen zu können, finde ich auch scharf... *lacht*
Schönen Abend Dir
Biber
dann lernen wir jetzt beide was, wie es auch in diesem Forum sein soll:
Bei mir (Win XP Prof) kommt heraus:
echo.|format r: (CDRom-Laufwerk)
Der Typ des Dateisystems ist RAW.Geben Sie mit der Option /FS das Dateisystem an,
das Sie für dieses Volume verwenden möchten.
echo.|format c:
Der Typ des Dateisystems ist NTFS.Geben Sie die aktuelle Volumebezeichnung für Laufwerk C: ein: Es wurde eine unzulässige Volumebezeichnung für dieses Laufwerk angegeben.
echo.|format e: (USB-Stick)
Legen Sie eine neue Diskette in Laufwerk E: ein,und drücken Sie die EINGABETASTE. Der Typ des Dateisystems ist FAT.
Überprüfung von 249 MB
FORMAT kann nicht ausgeführt werden, da das Volume von einem anderen
Prozess verwendet wird. Die Bereitstellung des Volumes muss zuerst
aufgehoben werden.
ALLE OFFENEN BEZÜGE AUF DIESEM VOLUME SIND DANN UNGÜLTIG.
Möchten Sie die Bereitstellung des Volumes aufheben? (J/N)
FORMAT kann nicht ausgeführt werden, da das Volume von einem anderen
Prozess verwendet wird. Die Bereitstellung des Volumes muss zuerst
aufgehoben werden.
ALLE OFFENEN BEZÜGE AUF DIESEM VOLUME SIND DANN UNGÜLTIG.
Möchten Sie die Bereitstellung des Volumes aufheben? (J/N) Das Laufwerk kann nicht gesperrt werden.
Das Volume wird verwendet.
~~~
~~~
Verständnis für meine Skepsis?
Somit denke ich, dass Deine Prüfung eventuell bei mir nicht funktionieren würde.
Aber für verrückt halte ich doch nicht deswegen - so sollte es nicht rüberkommen.
Und wenn cimbala W2k hat, hat er/sie ja vielleicht Deinen Lösungsweg schon gestern mit Erfolg ausprobiert.
**gg ... aber die Vorstellung, demnächst "nullplans_idee.A" im HiJackThis.Logfile oder bei Symantec lesen zu können, finde ich auch scharf... *lacht*
Schönen Abend Dir
Biber
Jedes Laufwerk, bekommt bei der Installation einen bestimmten Buchstaben zugeordnet.
Was heisst, du musst eben Pro Computer 1 Mal die Batchdatei ändern, dürfte aber nicht so schwer sein.
Wenn du 2 Laufwerke hast, dann machst du eben n übergang zb:
Copy D:\test.exe C:\test.exe"
Copy E:\test.exe C:\test.exe
Wobei ich aber nicht versthe dass du einen Pfad von der CD angibst, da der ja bei jeder CD anders ist ?
Ich verstehe aber auch nicht warum bei dir C:\test.EXE (EXE) heisst, da du ja Dateien kopieren willst und keine Programme etc. ?
Mach es am besten so :
Copy D:\ C:\ORDNERNAME
Cppy E:\ C:\SELBERNAME
Dann hast du sicher keine Probleme mehr !!
Was heisst, du musst eben Pro Computer 1 Mal die Batchdatei ändern, dürfte aber nicht so schwer sein.
Wenn du 2 Laufwerke hast, dann machst du eben n übergang zb:
Copy D:\test.exe C:\test.exe"
Copy E:\test.exe C:\test.exe
Wobei ich aber nicht versthe dass du einen Pfad von der CD angibst, da der ja bei jeder CD anders ist ?
Ich verstehe aber auch nicht warum bei dir C:\test.EXE (EXE) heisst, da du ja Dateien kopieren willst und keine Programme etc. ?
Mach es am besten so :
Copy D:\ C:\ORDNERNAME
Cppy E:\ C:\SELBERNAME
Dann hast du sicher keine Probleme mehr !!
Moin VCa,
Da wird cimbala aber stinkesauer auf uns andere sein, dass wir ihn/sie 3 Monate lang mit überflüssigen Tipps zugeschwallt haben...
Was bringt Dich zu der Annahme, dass diese Zeile das CDROM-Laufwerk als Quellverzeichnis zum Kopieren benutzt?
Ein doch sehr staunender
Biber
Du musst in der batch-datei folgendes eingeben:
copy test.exe c:\
das genügt schon. mfg VCa
copy test.exe c:\
das genügt schon. mfg VCa
Da wird cimbala aber stinkesauer auf uns andere sein, dass wir ihn/sie 3 Monate lang mit überflüssigen Tipps zugeschwallt haben...
Was bringt Dich zu der Annahme, dass diese Zeile das CDROM-Laufwerk als Quellverzeichnis zum Kopieren benutzt?
Ein doch sehr staunender
Biber
Hi Biber und ihr anderen,
Also ich hab das jetzt ma in ne batch geschrieben also mal nur
WEnn ich diese nun ausführe dann kommt bei mir nur Kein CDROM gefunden nur woran liegt das nun ?
Also ich hab das jetzt ma in ne batch geschrieben also mal nur
::-------snipp BatCd.bat
@echo off & setlocal
Set "vbssnippet=%temp%\%random%.vbs"
>%vbssnippet% echo Set WSHShell = WScript.CreateObject("WScript.Shell")
For /F %%i in ('cscript //nologo %vbssnippet%') Do set "cdrom=%%i"
del %vbssnippet%
if [%CDROM%]== (ECHO Kein CDROM gefunden!) else Echo CDROM ist %CDROM%:
:: -----snapp BatCd.bat
Hmm... stimmt eigentlich. Solange man nichts auf die CD kopieren will, ist man auf der sicheren Seite, wenn man im Installscript die Laufwerksangaben einfach rauslässt. Da sich da Script auf der CD befindet, wird das automatisch als Quelllaufwerk angenommen.
Tschö,
nullplan
P.S.: draufkopieren geht natürlich auch: copy C:\will.ich.haben. Ist aber sinnlos, weil kopieren auf CD kann man gleich bleiben lassen.
Tschö,
nullplan
P.S.: draufkopieren geht natürlich auch: copy C:\will.ich.haben. Ist aber sinnlos, weil kopieren auf CD kann man gleich bleiben lassen.