如何用一个批处理文件调用另一个批处理文件时不成功
我想用一个批处理文件调用另外一个批处理文件。但是不知道哪里有问题,总是不能让被调用的批处理文件执行成功。单独执行被调用的1.bat是可以更改文件拓展名。但是用主批处理文件...
我想用一个批处理文件调用另外一个批处理文件。但是不知道哪里有问题,总是不能让被调用的批处理文件执行成功。单独执行被调用的1.bat 是可以更改文件拓展名。但是用
主批处理文件:d:\A.bat
@echo off
call D:\BAT\合并文本\文本片段\源\B.bat
pause
被调用的批处理文件:D:\BAT\合并文本\文本片段\源\B.bat
@echo off
pause
for /f "delims=" %%b in ('dir /a-d/b *.qrt') do (ren %%b %%~nb.txt)
pause 展开
主批处理文件:d:\A.bat
@echo off
call D:\BAT\合并文本\文本片段\源\B.bat
pause
被调用的批处理文件:D:\BAT\合并文本\文本片段\源\B.bat
@echo off
pause
for /f "delims=" %%b in ('dir /a-d/b *.qrt') do (ren %%b %%~nb.txt)
pause 展开
1个回答
展开全部
这个A.bat在D盘根目录下,所以修改的是D盘根目录下的文件
修改D:\BAT\合并文本\文本片段\源\B.bat,让它执行时在自己的目录下,修改如下
@echo off
pause
pushd "%~dp0"
for /f "delims=" %%b in ('dir /a-d/b *.qrt') do (ren %%b %%~nb.txt)
popd
pause
修改D:\BAT\合并文本\文本片段\源\B.bat,让它执行时在自己的目录下,修改如下
@echo off
pause
pushd "%~dp0"
for /f "delims=" %%b in ('dir /a-d/b *.qrt') do (ren %%b %%~nb.txt)
popd
pause
更多追问追答
追问
是不是加一句pushd。。。popd就OK了?
追答
pushd "%~dp0"是将当前文件夹修改为被调用批处理文件所在文件夹
popd是返回到pushd修改之前的文件夹
这个是根据B.bat需要在其所在文件夹执行加的,OK不OK试试就知道了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询