Como copiar arquivos para um determinado pendrive USB com cmd?

Como copiar arquivos para um determinado pendrive USB com cmd?

Quero copiar c:\test\myphoto.jpg para F: se o nome do disco F: for "Rejepow" do cmd.

Como eu posso fazer isso?

Se for impossível no cmd, você poderia explicar como fazer isso em c++?

Do comentário do OP:

Eu tentei removendo @echo off, também mudei If[%%d]==[F:] to If[%%d]==[G:].

A saída de wmic logicaldisk get caption, volumenameé:

C: 
D: 
E: 
G: REJEPOW

Responder1

Quero copiar c:\test\myphoto.jpg para F: se o nome do disco F: for "Rejepow"

Solução 1:

Use o seguinte arquivo em lote (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

Solução 2:

Use a seguinte linha de comando.

for /f "tokens=1,2" %d in ('wmic logicaldisk get caption^, volumename ^| findstr -i "Rejepow"') do copy c:\test\myphoto.jpg %d

Notas:

  • Sua pergunta especifica explicitamente para copiar apenas se for a unidade F:.
  • Supondo que seja um erro, modifiquei a resposta para copiar o arquivo para cada disco denominado REJEPOW (que não é a grafia que você forneceu na sua pergunta).

Leitura adicional

Responder2

Eu tentei seu código em lote, mas não funcionou, embora sua resposta de linha de comando fosse verdadeira e adivinhe o que fiz;) Escrevi um programa c++ que executa sua linha de comando.

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

informação relacionada