批处理问题求解,为啥把路劲储存到txt文件内,txt文件会在要搜索文件的目录下的? 代码如下

@echooffrem指定待搜索的文件set"FileName=BatHome_Batcher.txt"echo正在搜索,请稍候...for%%ain(CDEFGHIJK... @echo off
rem 指定待搜索的文件
set "FileName=BatHome_Batcher.txt"
echo 正在搜索,请稍候...
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%a:\nul (
pushd %%a:\
for /r %%b in ("*%FileName%") do (
if /i "%%~nxb" equ "%FileName%" (
echo %%b
echo.
echo 正在把路径写入文本内...
for /r %%b in ("*%FileName%") do (
echo %%b>路径储存.txt
)
echo 储存完成!
)
)
popd
)
)
pause
问题已解决:
echo %%b>路径储存.txt


echo %%b>%cd%路径储存.txt
另一个问题,假设有在E盘有个BatHome_Batcher.txt F盘也有一个,
搜到到E盘写入路径储存.txt,然后又搜到F盘的,结果路径储存只存到F盘的路径,E盘的被覆盖了,求不被覆盖的代码
展开
 我来答
依梦琴瑶
高粉答主

2016-11-16 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
@echo off
rem 指定待搜索的文件
set "FileName=BatHome_Batcher.txt"
echo 正在搜索,请稍候...
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%a:\nul (
        for /r %%a: %%b in ("*%FileName%") do (
            if /i "%%~nxb" equ "%FileName%" (
                echo %%b
                echo.
                echo 正在把路径写入文本内...
                echo %%b>>路径储存.txt
            )
            echo 储存完成!
        )
    )
)
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyykkkyyyy
2016-11-16 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3310万
展开全部
echo %%b>路径储存.txt

echo %%b>>"%~dp0路径储存.txt"
追问
如果我把代码改成这样呢?
@echo off
/*中间代码省略*/
修改下面这些

echo %%b
set lhr=%%b
echo.
)
)
popd
)
)
echo 正在把路径写入文本内...
echo %lhr%>>%cd%\路径储存.txt
)
echo 储存完成!
pause
追答
解释一下%cd%表示当前路径(且为执行第一个for前时的),如果是在根目录,其后会有\符而如果不在根目录则其后则无\符,使得书写时不便处理与后面文件名连写是否加\符,而%~dp0表示批处理文件所在路径,其后总是会有\符
无论%cd%还是%~dp0 当路径中存在空格时它去找此路径都会出错所以宜加上引号
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式