批处理问题求解,为啥把路劲储存到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盘的被覆盖了,求不被覆盖的代码 展开
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盘的被覆盖了,求不被覆盖的代码 展开
2个回答
展开全部
@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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
echo %%b>路径储存.txt
改
echo %%b>>"%~dp0路径储存.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 当路径中存在空格时它去找此路径都会出错所以宜加上引号
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询