
cmd에서 F: 디스크 이름이 "Rejepow"인 경우 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
F: 디스크 이름이 "Rejepow"인 경우 c:\test\myphoto.jpg를 F:에 복사하고 싶습니다.
해결 방법 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 라인과 관련된 모든 것에 대한 훌륭한 참고 자료입니다.
- 복사- 하나 이상의 파일을 다른 위치에 복사합니다.
- wmic- 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;
}