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

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

我自己写了段脚本,但是失败了,请帮忙看看问题出在哪?
  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. )
复制代码
学习批处理

语块内不能有标签

TOP

语块内不能有标签
zm900612 发表于 2011-5-16 14:06


高人能否说的明白点,谢谢
学习批处理

TOP

  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. )
复制代码

TOP

@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
学习批处理

TOP

5# wangze78


把@echo off删掉,看看哪一步出错了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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. )
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

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>
学习批处理

TOP

返回列表