我可以在 "cmd console?" 上给出一个参数吗

Can i give a parameters on "cmd console?"

我想使用 CMD 控制台。 例如 如果 a.cpp 如下所示

int main(int argc, char* argv[]) {
    for (int i = 0; i < argc; i++) {
        cout << "argv : " << argv[i] << endl;
    }

    string path = "c:\test"; 
    
    vector<fs::path> v;
    vector<fs::path>::iterator it;

    for (auto& entry : fs::recursive_directory_iterator(path))
        v.push_back(entry.path());
    
    for (it = v.begin(); it != v.end(); ++it) {
        cout << *it << endl;
    }

如果我想通过 CMD 控制台 运行 a.exe 可以是

C:\users> a.exe

结果会是

"c:\test\test1"
"c:\test\test1\test2"
"c:\test\test1\test2\lastdir"
"c:\test\test1\test2\lastdir2"
"c:\test\test1_1"
"c:\test\test1_1\test1_txt.txt"

但是如果我想通过 CMD 控制台更改路径怎么办

例如

C:\users> a.exe c:\temp

输出将是

"c:\temp\temp_dir"
"c:\temp\temp_dir\temp.txt" 
"c:\temp\temp_dir2"

自 C++17 以来,您可以便携地执行此操作

#include <filesystem>
std::filesystem::current_path(std::filesystem::path(path));