如何使用批处理从FTP服务器上下载当天创建的所有文件
FTP命令好象不能那么筛选,不过你可以在DATE下建立一个新文件夹,把所有文件都放进去,然后DATE下就只有每天创建的文件文件,下载下来后在移动过去,这样不就简单了
然后你可以每天用下面的脚本来下载文件
@echo
off
echo
open
19216811
>
"%userprofile%\Local
Settings\Temp\ftpin"
echo
user
>>
"%userprofile%\Local
Settings\Temp\ftpin"
echo
user
>>
"%userprofile%\Local
Settings\Temp\ftpin"
echo
cd
date
>>
"%userprofile%\Local
Settings\Temp\ftpin"
echo
binary
>>
"%userprofile%\Local
Settings\Temp\ftpin"
echo
mget
c:\date
>>
"%userprofile%\Local
Settings\Temp\ftpin"
echo
bye
>>
"%userprofile%\Local
Settings\Temp\ftpin"
ftp
-s:"%userprofile%\Local
Settings\Temp\ftpin"
del
"%userprofile%\Local
Settings\Temp\ftpin"
参照:netrc文件格式:
open ip
用户名
密码
bin
mput d:\aa\目录下的txt文件
close
bye
以上内容建立一个文件,使用:
ftp -i -s:文件名
方式做计划任务调用,就可以了。
xcopy \\19216802\服务器路径\本地路径/e/s/d/y
例如你要拷贝服务器19216802上的d:\test 文件夹到本地e:\test 文件夹
xcopy \\19216802\d:\test\ e:\test/e/s/d/y 此命令实现只复制有修改或者最新的文件,简单的说就是实现服务器上的文件夹和本地文件同步
当然,如果是完整的批处理,还应该包括用户名和密码信息,现在假设你服务器的用户名为admin
密码为123456
则完整的批处理是这样的:
net use \\19216802 "123456" /user:admin
xcopy \\19216802\d:\test\ e:\test/e/s/d/y(此命令要注意,如果是首次运行,本地又没有创建test文件夹,它会提示test是文件还是目录,选目录即可)
java 不支持 运行批处理文件的。我也查了一下 以下是我转载的。不知道能不能帮助你。
Java 是种跨平台的语言,我们经常碰到需要通过Java调用windows下某些程序。有些第三方厂商如(ANT),也提供了调用windows下可执行程序的方法,但我们往往需要调用一些批处理命令。而java 却不提供。
这里,我采用一种变相的调用方法,使得Java 能调用批处理命令。如果您有更好的方法,希望您能告诉我。
前期准备[/B]
Quick Batch File (De)Compiler
将任何BAT、CMD批处理脚本编译为EXE文件!
开始
1. 运行exe 文件
Java JDK里已经提供了调用的方法,不在累赘,代码如下。
try {
String command = "notepad";
Process child = RuntimegetRuntime()exec(command);
} catch (IOException e) {
}
2. 运行 bat(批处理) 文件
Java 对批处理文件还不支持。刚开始一直在研究 Java 如何调用批处理文件,始终找不到解决方法。后来只好绕过批处理,考虑如何将批处理转换为exe可执行文件。然后再通过Java调用可执行文件。
在Google上搜索一下,找到Quick Batch File (De)Compiler,可以将任何BAT、CMD批处理脚本编译为EXE文件。使用了一下,果然可以。
Quick Batch File (De)Compiler使用非常简单:
Quickbfc 文件名bat 文件名exe(将批处理命令编译为可执行文件)
quickbfd 文件名exe 文件名bat(将可执行文件反编译为批处理命令)
然后,我们再按第一种方法通过Java 调用,即可。
更多详细内容请查看:http://www111cnnet/jsp/50/74c6b7e69e8efb90e02889fe82fd2f89htm
这个我没有用过 ,不知道行不行,不好意思了,我也关注中。。。看有没有人能够解决
0条评论