找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28931|回复: 7

[文本处理] 批处理文件追加为何失败?

[复制链接]
发表于 2011-5-16 13:56:07 | 显示全部楼层 |阅读模式
我自己写了段脚本,但是失败了,请帮忙看看问题出在哪?
  1. @echo off&setlocal enableDelayedExpansion
  2. for /f "delims=" %%a in ('dir e:\data /a:-d /b') do (
  3. if "%%~xa"=="" set a=%%a
  4. md !a:~0,5!

  5. if exist e:\data\!a:~0,5!"%%a" goto addfile  else goto movefile

  6. :addfile
  7. type e:\data"%%a">>e:\data\!a:~0,5!"%%a"

  8. :movefile
  9. move "%%a" !a:~0,5!

  10. )
复制代码
发表于 2011-5-16 14:06:18 | 显示全部楼层
语块内不能有标签
 楼主| 发表于 2011-5-16 15:14:28 | 显示全部楼层
语块内不能有标签
zm900612 发表于 2011-5-16 14:06


高人能否说的明白点,谢谢
发表于 2011-5-16 15:20:56 | 显示全部楼层
  1. @echo off&setlocal enableDelayedExpansion
  2. for /f "delims=" %%a in ('dir e:\data /a:-d /b') do (
  3.     if "%%~xa"=="" (
  4.         set a=%%a
  5.     )
  6.     md !a:~0,5!
  7.     if exist e:\data\!a:~0,5!"%%a" (
  8.         type e:\data"%%a">>e:\data\!a:~0,5!"%%a"
  9.     ) else (
  10.         move "%%a" !a:~0,5!
  11.     )
  12. )
复制代码
 楼主| 发表于 2011-5-16 15:44:16 | 显示全部楼层
@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
发表于 2011-5-17 02:33:26 | 显示全部楼层
5# wangze78


把@echo off删掉,看看哪一步出错了。
发表于 2011-5-17 12:35:31 | 显示全部楼层
本帖最后由 hanyeguxing 于 2011-5-17 12:47 编辑

1,() 内使用 : 时不能令此行位于最后一行,不能令其上、下有空行
2,if 语法错误,else 前的命令使用 ()
3,禁止在 () 内 goto 循环跳转
4,引号使用错误
  1. @echo off&setlocal enableDelayedExpansion
  2. cd/d "e:\data"
  3. for /f "delims=" %%a in ('dir /a:-d /b') do if "%%~xa"=="" (
  4.   set a=%%a&set "a=!a:~0,5!"
  5.   md "!a!" 2>nul
  6.   if exist "!a!\%%a" (type "%%a">>!a!\%%a") else move "%%a" "!a!"
  7. )
复制代码
 楼主| 发表于 2011-5-18 17:14:52 | 显示全部楼层
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>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 12:03 , Processed in 0.021263 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表