标题: [其他] 检测文件夹变化的批处理怎样合并? [打印本页]
作者: hbb 时间: 2008-6-11 23:07 标题: 检测文件夹变化的批处理怎样合并?
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do start
/wait z:\"%%a"
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do
move z:\"%%a" z:\%dt%
望高手解答,谢谢!
作者: namejm 时间: 2008-6-11 23:13
为保险起见,请用文字告知你的意图,因为只看代码,难保不会出现理解上的偏差——如果代码本身有问题的话,更容易给数据带来灾难性的后果。
作者: hbb 时间: 2008-6-11 23:15
我是做了个检测文件夹变化的批处理
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
if exist z:\ goto run
:映射
net use Z: /delete /yes
net use Z: \\192.168.0.11\d$\fax /yes "cmpadmin" /user:cmpadmin
if not exist z:\ goto 映射
:run
for /f "tokens=1,2,3* delims=- " %%a in ('date /t') do set dt=%%a-%%b-%%c
if not exist z:\%dt% md z:\%dt%
if not exist z:\*.txt goto time
mshta vbscript:createobject("sapi.spvoice").speak("fax comming")(window.close)
mshta vbscript:msgbox("传真来了!",64,"提示")(window.close)
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do start /wait z:\"%%a"
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do move z:\"%%a" z:\%dt%
:time
ping 127.0.1 /n 10>nul
goto begin
作者: hbb 时间: 2008-6-11 23:18
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do start /wait z:\"%%a"
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do move z:\"%%a" z:\%dt%
这两句我想合并为
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do start /wait z:\"%%a" do move z:\"%%a" z:\%dt%
但是执行不了
作者: 随风 时间: 2008-6-11 23:21
这两句代码本身就问题,还是用文字说明你的意图吧。
否则错误的代码会把解题的人引到一个错误的方向。
作者: hbb 时间: 2008-6-11 23:27
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do start /wait z:\"%%a"
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) do move z:\"%%a" z:\%dt%
这两句中我都取了%%e作为变量,我只想要把两句合成一句剩去for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do for %%a in (%%e) 这句话
老大帮忙看看,谢谢!
作者: 随风 时间: 2008-6-11 23:35
代码本身就很不健康,既然你执意只要合并这两句,就按你的思路给你合并如下。
:- @echo off
- for /f "tokens=1-5" %%a in ('dir z:\*.txt^|find "%dt%"') do (
- for %%i in (%%e) do (
- move "z:\%%i" "z:\%dt%"
- start /wait "" "z:\%dt%\%%i"
- )
- )
- pause
复制代码
作者: hbb 时间: 2008-6-11 23:43
ok,非常可以,谢谢!
作者: hbb 时间: 2008-6-11 23:53
巡查大人,按照您的意思代码应该怎样修改才健康?谢谢不吝赐教!
作者: 随风 时间: 2008-6-12 00:01
都说了要你用文字表达,就你的代码看,第二个for就应该是多余的。。并且txt文件名都必须是以空格分为5列的。
但不知道你的txt文件名都有什么规律。所以只是估计。。。
[ 本帖最后由 随风 于 2008-6-12 00:04 编辑 ]
作者: hbb 时间: 2008-6-12 00:05
txt文件名的规则是按数字顺序排列的
您再帮我看看代码应该怎样修改或者精简吧!
作者: 随风 时间: 2008-6-12 00:06
关看代码帮不到你,
作者: hbb 时间: 2008-6-12 00:08
呵呵,谢谢了,代码我修改了下
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
if exist z:\ goto run
:映射
net use Z: /delete /yes
net use Z: \\192.168.0.11\d$\fax /yes "cmpadmin" /user:cmpadmin
if not exist z:\ goto 映射
:run
for /f "tokens=1,2,3* delims=- " %%a in ('date /t') do set dt=%%a-%%b-%%c
if not exist z:\%dt% md z:\%dt%
if not exist z:\*.txt goto time
mshta vbscript:createobject("sapi.spvoice").speak("fax comming")(window.close)
mshta vbscript:msgbox("传真来了!",64,"提示")(window.close)
for /f "tokens=1,2,3,4,5" %%a in ('dir z:\*.txt^|find "%dt%"') do (
for %%a in (%%e) do (
start /wait z:\"%%a"
move z:\"%%a" z:\%dt%
)
)
:time
ping 127.0.1 /n 10>nul
goto begin
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |