繁体   English   中英

如何从 windows 控制台调用 an.exe (C++) 在不同目录(或任何目录)中创建文件夹?

[英]How to call an .exe (C++) from windows console to create a folder in a different directory (or any directory)?

这几天我一直在研究一个主题,但没有成功。 我是 C ++ 菜鸟,作为实践,我决定制作一个版本控制系统的基本(非常基本)副本

我已将项目分成步骤 第一步(分为活动)是:

  1. 用户在 windows 控制台中搜索他要跟踪的文件所在的目录。 假设他到达了所需的路径: C:\MyProjectFolder\ProjectToTrack>
  2. 进入ProjectToTrack文件夹后,用户应用此命令: C:\MyProjectFolder\ProjectToTrack> emi track “emi”是我在 C ++ 中创建的.EXE 的名称, track参数告诉可执行文件在ProjectToTrack文件夹中创建一个隐藏文件夹。
    • 注意:显然emi.exe不在路径C:\MyProjectFolder\ProjectToTrack ,假设emi.exeC:\ProgramFiles\emi\emi.exe

就是这样,一旦完成,我将通过第二步,但稍后我会处理这个问题。

目前,在练习和查看文档后,我已经取得了:

  1. .exe在作为参数发送给它的路径中创建一个隐藏文件夹,话虽如此......
  2. 我也知道如何通过 windows 控制台将参数发送到.exe

但是,我仍然无法得到的是:

  1. 通过控制台从任何目录调用emi.exe (C:\ProgramFiles\emi\emi.exe) (需要跟踪任何文件夹中的任何文件)。
  2. 应用 C:\MyProjectFolder\ProjectToTrack> emi track时,我知道如何将参数track发送到emi.exe ,但是很明显我还必须捕获当前路径(我从控制台访问的路径),以便emi.exe知道在哪里创建隐藏的跟踪文件夹; 好吧,我仍然不知道如何捕获并将此路径发送到.exe 的主要 function。

我没有找到与我需要的东西相关的东西,英语不是我的默认语言,所以也许我没有使用正确的术语,我希望我在这里所说的是可以理解的。

PS.1。 我目前正在尝试使用“windows.h”构建这个项目,如果您的评论与这个库有关,我将不胜感激。 一旦我理解了这一点,我将开始练习可移植性。

PS.2。 我不想要一个详细的解决方案,我只是想要一个意见或建议,也许还有一些链接可以找到我需要的东西,我可以做 rest。

谢谢!

  1. 通过控制台从任何目录调用 emi.exe (C:\ProgramFiles\emi\emi.exe)(需要跟踪任何文件夹中的任何文件)。

为此,您需要将可执行文件的文件夹(即 C:\ProgramFiles\emi)添加到名为PATH的系统全局变量中(Windows 和 ZEDC9F0A5A5D57797BF68E37364743831),但我从未使用过这种方式,但 MAC OS 必须正常工作。

  1. 应用 C:\MyProjectFolder\ProjectToTrack> emi track 时,我知道如何将参数 track 发送到 emi.exe,但是,显然我还必须捕获当前路径(我从控制台访问的路径),以便emi.exe 知道在哪里创建隐藏的跟踪文件夹; 好吧,我仍然不知道如何捕获并将此路径发送到.exe 的主要 function。

为此,请在此处查看此 STD function: https://en.cppreference.com/w/cpp/filesystem/current_path (我个人从未使用过它,但一定是您要查找的内容)。

祝你的努力好运!

If the user does not pass in a target path explicitly as a parameter, the EXE can use the Win32 GetCurrentDirectory() function, or in C++17 and later the standardstd::filesystem::current_path() function, to retrieve its current "working目录”。

If the user navigates a console window to C:\MyProjectFolder\ProjectToTrack and then C:\ProgramFiles\emi\emi.exe , the current working directory will initially be C:\MyProjectFolder\ProjectToTrack .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM