如何使用cmd將檔案複製到指定的指定磁碟機?

如何使用cmd將檔案複製到指定的指定磁碟機?

我想將 c:\test\myphoto.jpg 複製到 F: 如果 F: 磁碟的名稱是 cmd 中的「Rejepow」。

我該怎麼做?

如果從 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”

解決方案一:

使用下列批次檔 (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 的每個磁碟(這不是您在問題中給出的拼寫)。

進一步閱讀

答案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;
}

相關內容