使用for循环查找特定文件的完整路径

时间:2016-11-21 13:01:03

标签: batch-file

我正在编写一个批处理文件,我陷入了搜索循环的中间位置:

FOR /R %MapDirectory% %%s IN ("%FullName%") DO SET DesiredMapFilePath=%%s

我想要做的是从所有子目录中的给定根目录中找到由其文件给出的文件的完整路径。保证只有一个具有给定名称的文件。

%MapDirectory%是根路径(例如:%~dp0\some\directory\wanna\start\from),%FullName%是我要查找的文件的全名(例如:foo.txt)。

上面的命令行无法找到实际存在于给定根路径(%MapDirectory%)的子目录中的给定文件。

2 个答案:

答案 0 :(得分:1)

根据提供的信息,您可以使用Where命令。

For /F "Delims=" %%s In (
    'Where/R "%~dp0some\directory\wanna\start\from" "foo.txt"'
) Do Set "DesiredMapFilePath=%%s"

[编辑/]

如果在起始目录中有一个尾部反斜杠,则上面和下面的Where命令结构不起作用。 (但你的问题没有,我的答案也没有)

For /F "Delims=" %%s In ('Where/R "%MapDirectory%" "foo.txt"'
    ) Do Set "DesiredMapFilePath=%%s"

答案 1 :(得分:1)

与dir命令结合

profile.update({"username":recepient,"pic._id":id},{$set:{"comments":{"author":user,"data":comment,"postedAt":new Date()}}},function(err,data){
                    if (err){
                        throw err;
                    }else{
                        console.log(data);
                        res.status(200).json({status:"Added successfully"});
                    }