标题: [文件操作] 【已解决】出错:运行不同文件夹里的bat,显示找不到路径 [打印本页]
作者: 思想之翼 时间: 2013-10-31 02:07 标题: 【已解决】出错:运行不同文件夹里的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
作者: DAIC 时间: 2013-10-31 08:46
把 cd /d 后面的相对路径改成绝对路径
作者: foxJL 时间: 2013-10-31 08:48
这样不行吗?- @echo off
- start /WAIT "" "d:\数据\1\lishi\合并.bat"
- start /WAIT "" "d:\数据\2\lishi\合并.bat"
- start /WAIT "" "d:\数据\3\lishi\合并.bat"
- pause
复制代码
作者: 思想之翼 时间: 2013-11-6 19:44
回复 3# foxJL
您写的代码运行时出错:
作者: foxJL 时间: 2013-11-6 20:02
回复 4# 思想之翼
后面的路径你自己改成"合并.bat"文件的绝对路径
作者: 思想之翼 时间: 2013-11-6 20:18
回复 5# foxJL
@echo off
start /WAIT "" "d:\数据\1\lishi\合并.bat"
start /WAIT "" "d:\数据\2\lishi\合并.bat"
start /WAIT "" "d:\数据\3\lishi\合并.bat"
pause
就是上述路径,没有丝毫不同,无奈运行不了,到底问题出在哪?想半天也没头绪。
作者: xxpinqz 时间: 2013-11-6 20:36
应该是的你的某个合并.bat有问题
作者: 思想之翼 时间: 2013-11-6 20:44
回复 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
作者: xxpinqz 时间: 2013-11-6 21:12
回复 8# 思想之翼
%cd%取得的不是合并.bat所在的路径,所以出错了。
2楼已经给出答案了。
@echo off
cd /d "d:\数据\1\lishi\"
start /wait "" "合并.bat"
........
或者合并.bat开头加入cd /d "%~dp0"
作者: 思想之翼 时间: 2013-11-10 17:30
回复 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
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |