如何在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
)
答案 0 :(得分:2)
SPACES在SET
命令中很重要。您正在设置环境变量"target_path "
的值,但使用环境变量"target_path"
。由于未设置变量,因此您正在查找文件\A.txt
接下来的问题是,由于您想要的完整文件名包含空格,您需要查找"%target_path\A.txt"
- 其中引号是必需的。那是在您将变量分配给target_path
之后。
答案 1 :(得分:1)
\\C:\...
是无效的语法。使用C:\...
作为本地路径,或\\hostname\share\...
作为远程路径。另外,正如Peter Wright所指出的,变量赋值中=
符号周围不应有空格:
set "var=value"
而不是
set var = value
并且你应该在任何带有空格的路径周围放置双引号(包括包含这些路径的变量)。
答案 2 :(得分: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
)