[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】出错:运行不同文件夹里的bat,显示找不到路径

本帖最后由 思想之翼 于 2013-11-3 13:30 编辑

D盘中,有名称为“数据”的文件夹,其中包含名称为1 、2 、3...的若干子文件夹,1 、2 、3...若干子文件夹里又包含同样名称的lishi子文件夹,每个lishi子文件夹里有一个"合并.bat"
欲写一个BAT,依次运行各个lishi子文件夹里的"合并.bat",下述代码显示 找不到路径,如何修改?
@echo off
cd /d "数据\1\lishi\"
start /WAIT "" "合并.bat"
cd /d "数据\2\lishi\"
start /WAIT "" "合并.bat"
cd /d "数据\3\lishi\"
start /WAIT "" "合并.bat"
pause
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

把 cd /d 后面的相对路径改成绝对路径

TOP

这样不行吗?
  1. @echo off
  2. start /WAIT "" "d:\数据\1\lishi\合并.bat"
  3. start /WAIT "" "d:\数据\2\lishi\合并.bat"
  4. start /WAIT "" "d:\数据\3\lishi\合并.bat"
  5. pause
复制代码
1

评分人数

TOP

回复 3# foxJL

您写的代码运行时出错:

TOP

回复 4# 思想之翼


    后面的路径你自己改成"合并.bat"文件的绝对路径

TOP

回复 5# foxJL

@echo off
start /WAIT "" "d:\数据\1\lishi\合并.bat"
start /WAIT "" "d:\数据\2\lishi\合并.bat"
start /WAIT "" "d:\数据\3\lishi\合并.bat"
pause

就是上述路径,没有丝毫不同,无奈运行不了,到底问题出在哪?想半天也没头绪。

TOP

应该是的你的某个合并.bat有问题
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 7# xxpinqz
合并.bat代码如下:

@echo off
set "a=%cd%"
cd..
set "b=%cd%"
call set "c=%%a:%b%=%%"
set "c=%c:\=%"
cd %c%
for /f "delims=" %%a in ('dir/a/b wj*.txt') do type "%%a">>%c%.txt

TOP

回复 8# 思想之翼
%cd%取得的不是合并.bat所在的路径,所以出错了。
2楼已经给出答案了。
@echo off
cd /d "d:\数据\1\lishi\"
start /wait "" "合并.bat"
........
或者合并.bat开头加入cd /d "%~dp0"
1

评分人数

初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 9# xxpinqz
用以下代码批量运行不同文件夹里的BAT,其中的 “删除空格.bat ” 可以运行,但 “并排合并.bat ”出现错误,烦请帮助查找错误所在。

批量运行不同文件夹里的BAT,以下代码出错:
@echo off
start /WAIT "" "d:\3\2\1.1\删除空格.bat"
start /WAIT "" "d:\3\2\1.1\并排合并.bat"
start /WAIT "" "d:\3\2\1.2\删除空格.bat"
start /WAIT "" "d:\3\2\1.2\并排合并.bat"
exit


并排合并.bat 出错
@echo off&setlocal enabledelayedexpansion
set 文件数=100
for /l %%a in (1,1,%文件数%) do (
    for /f "delims=" %%i in (%%a.txt) do (
        set /a n+=1
        for %%a in (!n!) do set "#%%a=!#%%a! %%i"
    )
    set /a m=n,n=0
)
(for /l %%a in (1,1,%m%) do echo,!#%%a:~1!)>wj.txt
  

删除空格.bat
@echo off
for /f "delims=" %%x in ('dir/b/a-d *.txt')do (echo %%x&set/a n+=1
(for /f "usebackq delims=" %%i in ("%%x")do for %%j in (%%i)do echo.%%j)>temp.yky
move temp.yky "%%x")
echo %n% 个文件处理完毕
exit

TOP

返回列表