[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 检测文件夹变化的批处理怎样合并?

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%
望高手解答,谢谢!

  为保险起见,请用文字告知你的意图,因为只看代码,难保不会出现理解上的偏差——如果代码本身有问题的话,更容易给数据带来灾难性的后果。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

我是做了个检测文件夹变化的批处理
@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

TOP

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%
但是执行不了

TOP

这两句代码本身就问题,还是用文字说明你的意图吧。
否则错误的代码会把解题的人引到一个错误的方向。
技术问题请到论坛发帖求助!

TOP

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) 这句话
老大帮忙看看,谢谢!

TOP

代码本身就很不健康,既然你执意只要合并这两句,就按你的思路给你合并如下。
:
  1. @echo off
  2. for /f "tokens=1-5" %%a in ('dir z:\*.txt^|find "%dt%"') do (
  3.    for %%i in (%%e) do (
  4.       move "z:\%%i" "z:\%dt%"
  5.       start /wait "" "z:\%dt%\%%i"
  6.     )
  7. )
  8. pause
复制代码
技术问题请到论坛发帖求助!

TOP

ok,非常可以,谢谢!

TOP

巡查大人,按照您的意思代码应该怎样修改才健康?谢谢不吝赐教!

TOP

都说了要你用文字表达,就你的代码看,第二个for就应该是多余的。。并且txt文件名都必须是以空格分为5列的。
但不知道你的txt文件名都有什么规律。所以只是估计。。。

[ 本帖最后由 随风 于 2008-6-12 00:04 编辑 ]
技术问题请到论坛发帖求助!

TOP

txt文件名的规则是按数字顺序排列的
您再帮我看看代码应该怎样修改或者精简吧!

TOP

关看代码帮不到你,
技术问题请到论坛发帖求助!

TOP

呵呵,谢谢了,代码我修改了下
@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

TOP

返回列表