中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [問題]存取當天不指定的檔案
作者:
标题: [問題]存取當天不指定的檔案 上一主题 | 下一主题
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『楼 主』:  [問題]存取當天不指定的檔案

請教我想做一個bat檔如下:
1.先看d:\source\data\下有沒想到今天的檔(每天是不定的, 可能有, 可能沒有)
  0214abc.abc.zip  0214ope.def.zip
2. 如有就在d:\source\source\開一個當天日期的folder
   20080214.abc
   20080214.def
3. unzip *.zip 到d:\source\source\它相對的檔案夾內.
   d:\source\source\20080214.abc\
   d:\source\source\20080214.def\
4. 然後ftp上一個server內

但兩個檔不可以同時ftp 上傳至server內, 要待一個完了(停1分鐘), 才開始上傳另一個.
請教要如何做到?
:(

2008-2-22 01:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  


@echo off
set aDate=%date:~0,-4%
set aDate=%aDate:-=%
dir /ad %adate:~4%abc.abc.zip&&md "d:\source\source\%adate%.abc\"&unzip %adate:~4%abc.abc.zip&"d:\source\source\%adate%.abc\"
dir /ad %adate:~4%ope.def.zip&&md "d:\source\source\%adate%.def\"&unzip %adate:~4%ope.def.zip&"d:\source\source\%adate%.def\"
ftp 自己搞定,关键词搜索或ftp /?



第一高手    第二高手

2008-2-22 10:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 3 楼』:  

謝謝..我試試看.

2008-2-22 16:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 4 楼』:  

哦2楼代码失误了
dir /ad改成dir /a-d



第一高手    第二高手

2008-2-22 16:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 5 楼』:  

fastslz兄, 我試了以下:

  Quote:
%date%
@echo on
set aDate=%date:~0,-4%
set aDate=%aDate:-=%

%adate:~4%abc.abc.zip

@echo off
dir /a-d %adate:~4%2f2.sam.tar&&md "d:\source\computer\%adate%.abc\" %adate:~4%abc.abc.zip&"d:\source\computer\%adate%.abc\"
dir /a-d %adate:~4%ope.def.zip&&md "d:\source\computer\%adate%.def\" %adate:~4%ope.def.zip&"d:\source\computer\%adate%.def\"
pause

但看似是date出了問題....

  Quote:
D:\source\Data>2008-02-22 星期五
'2008-02-22' 不是內部或外部命令、
可執行的程式或批次檔。

D:\source\Data>set aDate=2008-02-22   -----如何只取ddmm

D:\source\Data>set aDate=20080222

D:\source\Data>0222abc.abc.zip
'0222abc.abc.zip' 不是內部或外部命令、
可執行的程式或批次檔。
磁碟區 D 中的磁碟是 c40G BT download
磁碟區序號:  BC17-106F

D:\source\Data 的目錄

找不到檔案
'"d:\source\computer\20080222.abc\"' 不是內部或外部命令、

fastslz師兄,因在data內的檔是ddmm+xxx.aaa.zip (即2202a1e.sam.zip, 220255q.pet.zip, ... 15023eo.tuu.zip) ...

大至如:
今日是22022008, 即所有以ddmm=2202為名的都會有行動

copy和建夾於d:\source\computer\yyyymmdd.aaa\
d:\source\computer\20080222.sam\2202a1e.sam.zip
d:\source\computer\20080222.pet\220255q.sam.zip

是這樣了.....

2008-2-22 20:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 6 楼』:  

以后测试代码加echo实际应用去掉echo

  Quote:
@echo off
set aDate=%date:~0,-4%
set aDate=%aDate:-=%
echo dir /a-d %adate:~4%abc.abc.zip&&echo md "d:\source\source\%adate%.abc\"&echo unzip %adate:~4%abc.abc.zip "d:\source\source\%adate%.abc\"
echo dir /a-d %adate:~4%ope.def.zip&&echo md "d:\source\source\%adate%.def\"&echo unzip %adate:~4%ope.def.zip "d:\source\source\%adate%.def\"
pause

执行效果

  Quote:
dir /a-d 0222abc.abc.zip
md "d:\source\source\20080222.abc\"
unzip 0222abc.abc.zip "d:\source\source\20080222.abc\"
dir /a-d 0222ope.def.zip
md "d:\source\source\20080222.def\"
unzip 0222ope.def.zip "d:\source\source\20080222.def\"
请按任意键继续. . .





第一高手    第二高手

2008-2-22 21:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 7 楼』:  

它沒有在D:\source\source內建資料夾???

2008-2-22 22:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by xmi at 2008-2-22 22:38:
它沒有在D:\source\source內建資料夾???

怎么建自己搞定呀 unzip 我N年没用了



第一高手    第二高手

2008-2-22 23:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 9 楼』:  

謝謝, 我終於成功建立folder了...只要把所有command分行就行和""除掉,很是奇怪, 為何你可以一行成功, 而我的就要分行?
@echo off
set aDate=%date:~0,-4%
set aDate=%aDate:-=%
echo dir /a-d %adate:~4%abc.abc.zip&&echo
md d:\source\computer\%adate%.abc\
unzip %adate:~4%abc.abc.zip "d:\source\computer\%adate%.abc\"

echo dir /a-d %adate:~4%39E.def.zip&&echo
md d:\source\computer\%adate%.def\&&echo
copy %adate:~4%ope.def.zip&&echo d:\source\computer\%adate%.def\&&echo
pause

但為何日期永遠都是顯示0222,而不是2202?

[ Last edited by xmi on 2008-2-22 at 11:25 PM ]

2008-2-22 23:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 10 楼』:  

『第 6 楼』:  

以后测试代码加echo实际应用去掉echo

我不是说了吗要去掉echo(也就是6楼红色的要去掉)


@off
set aDate=%date:~0,-4%
:::剔除当前时间后4位
set aDate=%aDate:-=%
:::剔除aDate变量中的 - 符号
dir /a-d %adate:~4%abc.abc.zip&&md "d:\source\source\%adate%.abc\"&unzip %adate:~4%abc.abc.zip "d:\source\source\%adate%.abc\"
:::用dir判断当前目录MMddabc.abc.zip,dir命令返回成功就建立d:\source\source\YYYYMMdd文件夹,并且unzip解压MMddabc.abc.zip到d:\source\source\YYYYMMdd
dir /a-d %adate:~4%ope.def.zip&&md "d:\source\source\%adate%.def\"&unzip %adate:~4%ope.def.zip "d:\source\source\%adate%.def\"
:::同上
pause

[ Last edited by fastslz on 2008-2-22 at 11:49 PM ]



第一高手    第二高手

2008-2-22 23:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 11 楼』:  

http://www.cn-dos.net/forum/viewthread.php?tid=25746
@echo off
regedit /e "%temp%\bak.reg" "HKEY_CURRENT_USER\Control Panel\International"
::::备份系统原时间日期格式
>aDate.reg echo REGEDIT4
>>aDate.reg echo.
>>aDate.reg echo [HKEY_CURRENT_USER\Control Panel\International]
>>aDate.reg echo "sShortDate"="yyyy-MM-dd"
>>aDate.reg echo "sDate"="-"
>>aDate.reg echo "sTimeFormat"="HH:mm:ss"
regedit /s aDate.reg&del aDate.reg
::::统一格式化系统日期格式

set 年=%aDate:~0,4%
set 月=%aDate:~5,2%
set 日=%aDate:~8,2%
echo %年% %月% %日%

regedit /s "%temp%\bak.reg"&del "%temp%\bak.reg"
::::还原系统原时间日期格式
pause
好了仁至义尽了

[ Last edited by fastslz on 2008-2-23 at 12:49 AM ]



第一高手    第二高手

2008-2-23 00:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 12 楼』:  

fastslz十分謝.我太蠢了, 現在明白點了.但還要研究一下... many thanks

2008-2-23 00:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: