使用cmd命令'copy'复制C中的文件

时间:2015-01-19 10:12:48

标签: c cmd copy

我想将文件复制到C中的本地网络 我搜索但我找不到C的版本

int _tmain(int argc, _TCHAR* argv[])
{

    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    if (!CreateProcess( L"C:\\Windows\\System32\\cmd.exe", L"C:\\Windows\\System32\\cmd.exe copy a.txt \\share\\4vlad\\b.txt", NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi) )
    {
        printf("Error %d",GetLastError());
    }
    _getch();
    return 0;
}

但是这段代码不起作用。
有人能说我这个代码有什么问题吗?
谢谢!

1 个答案:

答案 0 :(得分:0)

您的目标路径中有不正确的转义序列。大多数网络共享将像 \\ share \ project \ foo \ data 一样被访问,但在您的C \版本中是一个转义序列。要获得角色\,您需要两个\\标记。

所以:

\\变为\

\\\\变为\\

因此:

int _tmain(int argc, _TCHAR* argv[])
{

    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    if (!CreateProcess( L"C:\\Windows\\System32\\cmd.exe",
        L"C:\\Windows\\System32\\cmd.exe copy a.txt \\\\share\\4vlad\\b.txt",
        NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi) )
    {
        printf("Error %d",GetLastError());
    }
    _getch();
    return 0;
}