Board logo

标题: [文本处理] 批处理删除代码和复制代码不相融? [打印本页]

作者: Heykuz    时间: 2013-8-12 09:33     标题: 批处理删除代码和复制代码不相融?

单独执行这段代码,正常执行。
  1. COPY /y "腾讯游戏" "C:\Documents and Settings\All Users\「开始」菜单\程序"
  2. COPY /y "腾讯软件" "C:\Documents and Settings\All Users\「开始」菜单\程序"
  3. attrib +r +h "C:\Documents and Settings\All Users\「开始」菜单\程序\腾讯游戏"
  4. attrib +r +h "C:\Documents and Settings\All Users\「开始」菜单\程序\腾讯软件"
复制代码
如果在上面的代码前面加上一段删除文件夹(相同名称)的,就不行,加入延时代码时,提示找不到文件。
  1. cd /d "C:\Documents and Settings\All Users\「开始」菜单\程序"
  2. rd /s /q "腾讯游戏"
  3. rd /s /q "腾讯软件"
  4. rd /s /q "winrar"
  5. COPY /y "腾讯游戏" "C:\Documents and Settings\All Users\「开始」菜单\程序"
  6. COPY /y "腾讯软件" "C:\Documents and Settings\All Users\「开始」菜单\程序"
  7. attrib +r +h "C:\Documents and Settings\All Users\「开始」菜单\程序\腾讯游戏"
  8. attrib +r +h "C:\Documents and Settings\All Users\「开始」菜单\程序\腾讯软件"
复制代码
求大神们解释一下原因及解决方法。
作者: Batcher    时间: 2013-8-12 10:10

  1. cd /d "C:\Documents and Settings\All Users\「开始」菜单\程序"
  2. rd /s /q "腾讯游戏"
  3. rd /s /q "腾讯软件"
  4. rd /s /q "winrar"
  5. rem 这个地方需要首先 cd /d 到存放游戏和软件的目录下面然后再开始复制
  6. cd /d "D:\bbs.bathome.net"
  7. COPY /y "腾讯游戏" "C:\Documents and Settings\All Users\「开始」菜单\程序"
  8. COPY /y "腾讯软件" "C:\Documents and Settings\All Users\「开始」菜单\程序"
  9. attrib +r +h "C:\Documents and Settings\All Users\「开始」菜单\程序\腾讯游戏"
  10. attrib +r +h "C:\Documents and Settings\All Users\「开始」菜单\程序\腾讯软件"
复制代码

作者: yu2n    时间: 2013-8-12 10:49

可以先pushd 到目录位置操作,完成后再执行popd切换回来。
  1. rem --- 使用 pushd 代替 cd /d
  2. rem ---   cd /d "C:\Documents and Settings\All Users\「开始」菜单\程序"
  3. pushd "C:\Documents and Settings\All Users\「开始」菜单\程序"
  4. rd /s /q "腾讯游戏"
  5. rd /s /q "腾讯软件"
  6. rd /s /q "winrar"
  7. rem --- 使用 popd 切换到上次目录
  8. popd
  9. COPY /y "腾讯游戏" "C:\Documents and Settings\All Users\「开始」菜单\程序"
  10. COPY /y "腾讯软件" "C:\Documents and Settings\All Users\「开始」菜单\程序"
  11. attrib +r +h "C:\Documents and Settings\All Users\「开始」菜单\程序\腾讯游戏"
  12. attrib +r +h "C:\Documents and Settings\All Users\「开始」菜单\程序\腾讯软件"
复制代码

作者: yu2n    时间: 2013-8-12 10:50

可以先pushd 到目录位置操作,完成后再执行popd切换回来。
yu2n 发表于 2013-8-12 10:49


更保险的做法是直接用绝对路径操作。
作者: Heykuz    时间: 2013-8-12 13:41

Batcher 发表于 2013-8-12 10:10



    明白了,原来是要回到原目录一次。谢谢按理员同志
作者: Heykuz    时间: 2013-8-12 13:43

可以先pushd 到目录位置操作,完成后再执行popd切换回来。
yu2n 发表于 2013-8-12 10:49



    谢谢士官同学。测试了,可行。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2