标题: [文本处理] 批处理文件追加为何失败? [打印本页]
作者: wangze78 时间: 2011-5-16 13:56 标题: 批处理文件追加为何失败?
我自己写了段脚本,但是失败了,请帮忙看看问题出在哪?- @echo off&setlocal enableDelayedExpansion
- for /f "delims=" %%a in ('dir e:\data /a:-d /b') do (
- if "%%~xa"=="" set a=%%a
- md !a:~0,5!
-
- if exist e:\data\!a:~0,5!\"%%a" goto addfile else goto movefile
-
- :addfile
- type e:\data\"%%a">>e:\data\!a:~0,5!\"%%a"
-
- :movefile
- move "%%a" !a:~0,5!
-
- )
复制代码
作者: CrLf 时间: 2011-5-16 14:06
语块内不能有标签
作者: wangze78 时间: 2011-5-16 15:14
语块内不能有标签
zm900612 发表于 2011-5-16 14:06
高人能否说的明白点,谢谢
作者: Commander 时间: 2011-5-16 15:20
- @echo off&setlocal enableDelayedExpansion
- for /f "delims=" %%a in ('dir e:\data /a:-d /b') do (
- if "%%~xa"=="" (
- set a=%%a
- )
- md !a:~0,5!
- if exist e:\data\!a:~0,5!\"%%a" (
- type e:\data\"%%a">>e:\data\!a:~0,5!\"%%a"
- ) else (
- move "%%a" !a:~0,5!
- )
- )
复制代码
作者: wangze78 时间: 2011-5-16 15:44
@echo off&setlocal enableDelayedExpansion
for /f "delims=" %%a in ('dir e:\data /a:-d /b') do (
if "%%~xa"=="" (
set a=%%a
)
md !a:~0,5!
if exist e:\data\!a:~0,5!\"%%a" ( ...
Commander 发表于 2011-5-16 15:20
运行后显示:此时不应有else
作者: Batcher 时间: 2011-5-17 02:33
5# wangze78
把@echo off删掉,看看哪一步出错了。
作者: hanyeguxing 时间: 2011-5-17 12:35
本帖最后由 hanyeguxing 于 2011-5-17 12:47 编辑
1,() 内使用 : 时不能令此行位于最后一行,不能令其上、下有空行
2,if 语法错误,else 前的命令使用 ()
3,禁止在 () 内 goto 循环跳转
4,引号使用错误- @echo off&setlocal enableDelayedExpansion
- cd/d "e:\data"
- for /f "delims=" %%a in ('dir /a:-d /b') do if "%%~xa"=="" (
- set a=%%a&set "a=!a:~0,5!"
- md "!a!" 2>nul
- if exist "!a!\%%a" (type "%%a">>!a!\%%a") else move "%%a" "!a!"
- )
复制代码
作者: wangze78 时间: 2011-5-18 17:14
1,() 内使用 : 时不能令此行位于最后一行,不能令其上、下有空行
2,if 语法错误,else 前的命令使用 ()
3,禁止在 () 内 goto 循环跳转
4,引号使用错误@echo off&setlocal enableDelayedExpansion
cd/d "e:\ ...
hanyeguxing 发表于 2011-5-17 12:35
版主,运行后没反应啊,我的本意是如果有相同文件名就追加内容,没有就拷贝;
运行后的dos窗口:
E:\data>ccc.bat
E:\data>setlocal enableDelayedExpansion
E:\data>cd/d "e:\data"
E:\data>
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |