在我编写的脚本中,想要通过在python脚本中调用findstr
来查找 .cpp 文件中的C ++函数。我正在项目目录中的cmd
上手动测试,其中包含多个 .cpp 和 .h 文件。
使用:
findstr /spinm /C:"werden oder sollen neue Versionen dieser Dateien angelegt werden?\",Project::Plural())" *.cpp
输出:
target.cpp
我得到正确的 .cpp 文件,其中包含该函数,我们称之为target.cpp.
。但是我正在编写这个python脚本,以便用户以后可以在某些函数上找到更改,所以我需要它应该在输出中显示整个路径。在我使用的堆栈溢出的解决方案中:
for /f "delims=" %a in ('findstr /spinm /C:"werden oder sollen neue Versionen dieser Dateien angelegt werden?\",Project::Plural())" *.cpp') do echo %~fa
输出:
)" *.cpp') do echo %~fa was unexpected at this time.
请注意,如果我使用相同的命令,例如:
for /f "delims=" %a in ('findstr /spinm /C:"bool" *.cpp') do echo %~fa
我得到了所有 .cpp 的列表以及该文件夹中的完整路径(需要什么)以及在其中使用bool类型的子目录。
答案 0 :(得分:0)
经过几个小时的头脑风暴之后:
for /f "delims=" %a in ('findstr /spinmr /C:"werden oder sollen neue Versionen dieser Dateien angelegt werden?.*,Project::Plural())" *.cpp') do echo %~fa
我不是专家,但是当我使用/R
中的findstr
选项将我的字符串更改为表达式,然后使用。* (通配符)时的工作原理。
问题是虽然findstr
将 \" 识别为字符串中的引号字符,但当我在in(' **findstr command** ')
中使用它时会产生cmd问题期望引号作为额外的字符串输入。