
Я хочу скопировать c:\test\myphoto.jpg на F:, если имя диска F: — «Rejepow» из cmd.
Как мне это сделать?
Если это невозможно из cmd, не могли бы вы объяснить, как это сделать на c++?
Из комментария OP:
Я пробовал удалять @echo off
, также я менял If[%%d]==[F:] to If[%%d]==[G:]
.
Вывод wmic logicaldisk get caption, volumename
:
C:
D:
E:
G: REJEPOW
решение1
Я хочу скопировать c:\test\myphoto.jpg на F:, если имя диска F: — «Rejepow»
Решение 1:
Используйте следующий пакетный файл (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
Решение 2:
Используйте следующую командную строку.
for /f "tokens=1,2" %d in ('wmic logicaldisk get caption^, volumename ^| findstr -i "Rejepow"') do copy c:\test\myphoto.jpg %d
Примечания:
- В вашем вопросе явно указано, что копировать следует только в том случае, если это диск F:.
- Предположив, что это ошибка, я изменил ответ, скопировав файл на каждый диск с надписью REJEPOW (что не соответствует написанию, которое вы указали в своем вопросе).
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD- Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- копия- Скопируйте один или несколько файлов в другое место.
- wmic- Команда инструментария управления Windows.
- для /ф- Циклическая команда по результатам другой команды.
решение2
Я попробовал ваш пакетный код, но он не сработал, хотя ваш ответ в командной строке был верным, и угадайте, что я сделал;) Я написал программу на C++, которая запускает вашу командную строку.
#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;
}