|
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
状态 离线
|
|
2008-2-22 16:29 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
|
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 |
|