0

如何使用参数化路径findstr来查找一些文本并获取它?

我使用了以下命令,但不幸的是它不起作用。无论它是否能够从同一路径的文件中找到文本。

此代码正在运行:

@echo off
findstr /m "boy" A.txt 
if %errorlevel%==0 (
  echo Found! >log.txt
)
if %errorlevel%==1  (
  echo No matches found >log.txt
)

这不起作用:

set target_path = \\C:\Users\ayanjit\Desktop\New folder 

findstr /m "boy" %target_path%\A.txt 
if %errorlevel%==0 (
  echo Found! >log.txt
)
if %errorlevel%==1  (
  echo No matches found >log.txt
)
4

3 回答 3

2

空格在SET命令中很重要。您正在设置环境变量的值,"target_path "但使用环境变量"target_path"。由于未设置变量,因此您正在查看文件\A.txt

下一个问题是,由于您想要的完整文件名包含空格,因此您需要查找"%target_path\A.txt"- 需要引号的位置。那是在您将变量分配给之后target_path

于 2013-07-05T19:35:05.143 回答
1

\\C:\...不是有效的语法。用于C:\...本地路径或\\hostname\share\...远程路径。此外,正如Peter Wright=指出的那样,变量赋值中的符号周围不应有空格:

set "var=value"

set var = value

并且您应该在其中包含空格的任何路径周围加上双引号(包括包含此类路径的变量)。

于 2013-07-05T19:09:05.477 回答
1

尝试这个:

set "target_path=C:\Users\ayanjit\Desktop\New folder" 

findstr /m "boy" "%target_path%\A.txt"
if %errorlevel%==0 (
  >log.txt echo Found! 
) else (
  >log.txt echo No matches found 
)
于 2013-07-05T19:33:22.187 回答