
Ich möchte c:\test\myphoto.jpg nach F: kopieren, wenn der Name der Festplatte F: von cmd „Rejepow“ lautet.
Wie kann ich es tun?
Wenn es per cmd nicht möglich ist, könnten Sie erklären, wie es in C++ geht?
Aus dem Kommentar von OP:
Ich habe es durch Entfernen versucht @echo off
, außerdem habe ich geändert If[%%d]==[F:] to If[%%d]==[G:]
.
Die Ausgabe wmic logicaldisk get caption, volumename
lautet:
C:
D:
E:
G: REJEPOW
Antwort1
Ich möchte c:\test\myphoto.jpg nach F: kopieren, wenn der Name der Festplatte F: „Rejepow“ ist.
Lösung 1:
Verwenden Sie die folgende Batchdatei (CopyToRejepow.cmd).
@echo off
setlocal
for /f "tokens=1,2" %%d in ('wmic logicaldisk get caption^, volumename ^| findstr -i "Rejepow"') do (
copy c:\test\myphoto.jpg %%d
)
endlocal
Lösung 2:
Verwenden Sie die folgende Befehlszeile.
for /f "tokens=1,2" %d in ('wmic logicaldisk get caption^, volumename ^| findstr -i "Rejepow"') do copy c:\test\myphoto.jpg %d
Anmerkungen:
- In Ihrer Frage wird ausdrücklich angegeben, dass nur kopiert werden soll, wenn es sich um Laufwerk F: handelt.
- In der Annahme, dass es sich um einen Fehler handelt, habe ich die Antwort so geändert, dass die Datei auf alle Datenträger mit der Bezeichnung „REJEPOW“ (was nicht die Schreibweise ist, die Sie in Ihrer Frage angegeben haben) kopiert wird.
Weitere Informationen
- Ein AZ-Index der Windows CMD-Befehlszeile- Ein hervorragendes Nachschlagewerk zu allem, was mit der Windows-Eingabeaufforderung zu tun hat.
- Kopieren- Kopieren Sie eine oder mehrere Dateien an einen anderen Speicherort.
- wmic- Befehl der Windows-Verwaltungsinstrumentation.
- für /f- Befehl mit den Ergebnissen eines anderen Befehls wiederholen.
Antwort2
Ich habe Ihren Batchcode ausprobiert, aber er hat nicht funktioniert, obwohl Ihre Befehlszeilenantwort richtig war, und raten Sie mal, was ich getan habe;) Ich habe ein C++-Programm geschrieben, das Ihre Befehlszeile ausführt.
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
system("for /f \"tokens=1,2\" %d in (\'wmic logicaldisk get caption^, volumename ^| findstr -i \"Rejepow\" \') do copy c:\\test\\myphoto.jpg %d);
return 0;
}