中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 13:34
48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » [問題]存取當天不指定的檔案
可打印版本  721 / 11
第1楼 xmi 发表于 2008-02-22 01:35
初级用户 发帖 56 积分 125
[問題]存取當天不指定的檔案
請教我想做一個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分鐘), 才開始上傳另一個.
請教要如何做到?
:(
第2楼 fastslz 发表于 2008-02-22 10:39
铂金会员 发帖 2,315 积分 5,493 来自 上海


ftp 自己搞定,关键词搜索或ftp /?
第3楼 xmi 发表于 2008-02-22 16:29
初级用户 发帖 56 积分 125
謝謝..我試試看.
第4楼 fastslz 发表于 2008-02-22 16:41
铂金会员 发帖 2,315 积分 5,493 来自 上海
哦2楼代码失误了
dir /ad改成dir /a-d
第5楼 xmi 发表于 2008-02-22 20:53
初级用户 发帖 56 积分 125
fastslz兄, 我試了以下:

%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出了問題....


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

是這樣了.....
第6楼 fastslz 发表于 2008-02-22 21:23
铂金会员 发帖 2,315 积分 5,493 来自 上海
以后测试代码加echo实际应用去掉echo
@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


执行效果
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\"
请按任意键继续. . .
第7楼 xmi 发表于 2008-02-22 22:38
初级用户 发帖 56 积分 125
它沒有在D:\source\source內建資料夾???
第8楼 fastslz 发表于 2008-02-22 23:03
铂金会员 发帖 2,315 积分 5,493 来自 上海
Originally posted by xmi at 2008-2-22 22:38:
它沒有在D:\source\source內建資料夾???

怎么建自己搞定呀 unzip 我N年没用了
第9楼 xmi 发表于 2008-02-22 23:23
初级用户 发帖 56 积分 125
謝謝, 我終於成功建立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 ]
第10楼 fastslz 发表于 2008-02-22 23:46
铂金会员 发帖 2,315 积分 5,493 来自 上海
『第 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 ]
第11楼 fastslz 发表于 2008-02-23 00:18
铂金会员 发帖 2,315 积分 5,493 来自 上海
http://www.cn-dos.net/forum/viewthread.php?tid=25746

好了仁至义尽了

[ Last edited by fastslz on 2008-2-23 at 12:49 AM ]
第12楼 xmi 发表于 2008-02-23 00:34
初级用户 发帖 56 积分 125
fastslz十分謝.我太蠢了, 現在明白點了.但還要研究一下... many thanks
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023