如果 F: 磁盘的名称是“Rejepow”,我想从 cmd 将 c:\test\myphoto.jpg 复制到 F:。
我该怎么做?
如果无法通过 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 的每个磁盘(这不是您在问题中给出的拼写)。
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 复制- 将一个或多个文件复制到另一个位置。
- 西米克- Windows 管理规范命令。
- 对于/f- 循环命令以执行另一个命令的结果。
答案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;
}