| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:有一段脚本,只能看懂一点点,上网查有些说的不明不白,求翻译一下
只看楼主 加入收藏
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
结帖率:91.43%
收藏
已结贴  问题点数:20 回复次数:10 
有一段脚本,只能看懂一点点,上网查有些说的不明不白,求翻译一下
程序代码:
@echo off
set b=%data:~0,4%%data:~5,2%%data:~8,2%

setlocal enabledelayedexpansion
for /d %%i in (源路径) do (
set n=%%i
set name=%%~ni
set a!=name!
set d=%%~fi
set c=!a:~0,8!


 if "!c!"=="%b%" (
set DataPath=!n!\
set DestPath=D:\TEST\
set DataExt=*.文件格式
set w=\文件格式\
set rar=rar.exe
set rarname=!a!.rar

 
set ftpserver=地址
set user=用户名
set pass=密码
set ftppath=目的路径
set Ftp=目的路径/!a!

@echo open !ftpserver!>ftpcmd3
@echo !user!>>ftpcmd3
@echo !pass!>>ftpcmd3
@echo prompt>>ftpcmd3
@echo cd !ftppath!>>ftpcmd3
@echo mkdir !a! >>ftpcmd3

@echo bye>>ftpcmd3
ftp -s:ftpcmd3>nul
del /f ftpcmd3
echo !d!!w!!DataExt!
for /f %%i in ('dir /b /A-D /s !d!!w!!DataExt!') do (
set src=%%i
set dest=%%~ni
set e=!src!

echo !Ftp!
echo uploading !dest! to !ftpserver!......
::下面这是数字1,不是字母l
@echo open !ftpserver!>ftpcmd13
@echo !user!>>ftpcmd13
@echo !pass!>>ftpcmd13
@echo prompt>>ftpcmd13
@echo cd !Ftp!>>ftpcmd13
@echo bin>>ftpcmd13
@echo bin !e!>>ftpcmd13
@echo bye>>ftpcmd13
ftp -s:ftpcmd13 >nul
del /f ftpcmd13

echo uploading !rarname! to !ftpserver! OK.
)
)
)

搜索更多相关主题的帖子: higher 
2015-07-28 11:21
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
CMD 脚本,也只看得一个大概。
set b=%data:~0,4%%data:~5,2%%data:~8,2%
取日期中的数字拼起来

setlocal enabledelayedexpansion
for /d %%i in (源路径) do (
set n=%%i
set name=%%~ni
set a!=name!
set d=%%~fi
set c=!a:~0,8!
这一段,第一句不知道,你要查一下,第二句,不记得参数类型了。

if "!c!"=="%b%" (
set DataPath=!n!\
set DestPath=D:\TEST\
set DataExt=*.文件格式
set w=\文件格式\
set rar=rar.exe
set rarname=!a!.rar
这一段,与前面差不多,都是组合设置一些环境参数,

set ftpserver=地址
set user=用户名
set pass=密码
set ftppath=目的路径
set Ftp=目的路径/!a!
这一段,不解释

@echo open !ftpserver!>ftpcmd3
@echo !user!>>ftpcmd3
@echo !pass!>>ftpcmd3
@echo prompt>>ftpcmd3
@echo cd !ftppath!>>ftpcmd3
@echo mkdir !a! >>ftpcmd3
@echo bye>>ftpcmd3
生成 FTP 用的命令列表,写入 ftpcmd3 这个文件
> 转向输出,  >> 转向追加输出

ftp -s:ftpcmd3>nul           调用FTP这个外部命令,并且从 ftpcmd3 这个文件读命令,返回结果写到空
del /f ftpcmd3       删刚生成的命令行

再下面的与这个类似。

授人于鱼,不如授人于渔
早已停用QQ了
2015-07-28 18:00
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 2楼 风吹过b
设置环境参数完全看不懂...
2015-07-29 08:28
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
看不懂,你分段调试一下。

第一段:
@echo off
set b=%data:~0,4%%data:~5,2%%data:~8,2%

setlocal enabledelayedexpansion
for /d %%i in (源路径) do (
set n=%%i
set name=%%~ni
set a!=name!
set d=%%~fi
set c=!a:~0,8!

if "!c!"=="%b%" (
set DataPath=!n!\
set DestPath=D:\TEST\
set DataExt=*.文件格式
set w=\文件格式\
set rar=rar.exe
set rarname=!a!.rar

set ftpserver=地址
set user=用户名
set pass=密码
set ftppath=目的路径
set Ftp=目的路径/!a!

@echo open !ftpserver!>ftpcmd3
@echo !user!>>ftpcmd3
@echo !pass!>>ftpcmd3
@echo prompt>>ftpcmd3
@echo cd !ftppath!>>ftpcmd3
@echo mkdir !a! >>ftpcmd3

@echo bye>>ftpcmd3

然后查看 ftpcmd3 是内容,这里面的内容,对照 FTP 命令表去看。
环境变量,做 SET 命令查看整个列表,太多的话,
查看单个的命令是 : echo %变量名%

授人于鱼,不如授人于渔
早已停用QQ了
2015-07-29 10:42
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 4楼 风吹过b
最后一段
程序代码:
echo !Ftp!
echo uploading !dest! to !ftpserver!......
::下面这是数字1,不是字母l
@echo open !ftpserver!>ftpcmd13
@echo !user!>>ftpcmd13
@echo !pass!>>ftpcmd13
@echo prompt>>ftpcmd13
@echo cd !Ftp!>>ftpcmd13
@echo bin>>ftpcmd13
@echo bin !e!>>ftpcmd13
@echo bye>>ftpcmd13
ftp -s:ftpcmd13 >nul
del /f ftpcmd13
::如果我要删除已经上传的源文件,是不是在这里用“rm -rf +文件路径+文件名”就可以了
echo uploading !rarname! to !ftpserver! OK.
)
)
)
2015-07-30 11:40
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 4楼 风吹过b
还有就是我怕万一文件没成功传上去,就把源文件给删了,能不能加个判断,成功上传了再删
2015-07-30 11:47
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
回复 6楼 lyl930130
不太懂 FTP 的命令,
感觉没办法判断这个。
DOS下面,如果是 内部命令退出,有些命令是可以设置返回值的,
但FTP这个程序,读到服务器文件列表,怎么比较文件是否上传完毕,然后怎么返回比较结果,我想不出来。

我能想到的就是你还是用 VB6 自己写一个 相应的客户端吧,因为所有的协议都自己控制,业务逻辑也是自己控制,所以这些都不是问题。
主要就是工程稍微偏大。

授人于鱼,不如授人于渔
早已停用QQ了
2015-07-30 15:17
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 7楼 风吹过b
这是我接触脚本第二天。。。没有那么多时间来写了,就只能改以前师兄写的代码,这样会快一些。。。
而且,根本没有头绪。。
2015-07-30 15:21
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
基本上大家对脚本都是一知半解,必竟 DOS 时代太遥远了。

授人于鱼,不如授人于渔
早已停用QQ了
2015-07-30 16:02
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 9楼 风吹过b
版主的意思是不是,脚本已经没落了?
2015-07-30 20:53
快速回复:有一段脚本,只能看懂一点点,上网查有些说的不明不白,求翻译一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024153 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved