Я хочу скопировать c:\test\myphoto.jpg в F: если имя диска F: "Rejepow" из cmd.

Как мне это сделать?

Если это невозможно из cmd, не могли бы вы объяснить, как это сделать на c++?

Из комментария ОП:

Я попробовал это, удалив @echo off , также я изменил If[%%d]==[F:] to If[%%d]==[G:] .

Выходные данные wmic logicaldisk get caption, volumename :

C: 
D: 
E: 
G: REJEPOW

2 ответа2

2

Я хочу скопировать 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 (что не соответствует написанию, которое вы дали в своем вопросе).

Дальнейшее чтение

0

Я пробовал ваш пакетный код, но он не работал, хотя ваш ответ из командной строки был верным, и угадайте, что я сделал;) Я написал программу на С ++, которая запускает вашу командную строку.

#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;
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .