Board logo

标题: [文件操作] [已解决]批处理如何依次打开然后关闭文件夹中的所有文件 [打印本页]

作者: qq76020500    时间: 2009-7-22 07:14     标题: [已解决]批处理如何依次打开然后关闭文件夹中的所有文件

如:


打开F:\abc文件夹中的一个XLS  然后关闭     

    接着再打开另一个XLS 然后关闭   。。。。
    接着再打开另一个XLS 然后关闭   。。。。
    接着再打开另一个XLS 然后关闭   。。。。
    接着再打开另一个XLS 然后关闭   。。。。
    接着再打开另一个XLS 然后关闭   。。。。

    直到所有文件被运行过关闭过。(一次)


怎么写BAT啊谢谢



或者说啊
A文件夹里面有5000000个*.TXT文本文件
我需要把里面的TXT文件打开然后关闭
是所有的TXT中每一个TXT被打开后马上关闭(全部打开一次关闭一次)
而且5000000个txt的名称没规则

能做到吗 下午来看一下 谢谢

[ 本帖最后由 qq76020500 于 2009-7-23 16:24 编辑 ]
作者: qq76020500    时间: 2009-7-22 10:10

如:


打开F:\abc文件夹中的一个XLS  然后关闭     

    接着再打开另一个XLS 然后关闭   。。。。
    接着再打开另一个XLS 然后关闭   。。。。
    接着再打开另一个XLS 然后关闭   。。。。
    接着再打开另一个XLS 然后关闭   。。。。
    接着再打开另一个XLS 然后关闭   。。。。

    直到所有文件被运行过关闭过。(一次)


怎么写BAT啊谢谢

[ 本帖最后由 qq76020500 于 2009-7-22 10:20 编辑 ]
作者: keen    时间: 2009-7-22 12:35     标题: 回复 1楼 的帖子

请把问题在顶楼一次性描述清楚。

我有个疑问:为什么要打开一个又立马关掉,再打开一个,再关闭?你是想查看一下里面的内容,再关闭,还是不看内容,只是打开了,就关闭。
作者: qq76020500    时间: 2009-7-22 12:46

打开后马上要关闭


1

[ 本帖最后由 qq76020500 于 2009-7-22 12:58 编辑 ]
作者: qq76020500    时间: 2009-7-22 12:49

如果我用鼠标选择文件夹中所有的文件一次性全打开(未来的及关闭) 我电脑就死机了啊。

[ 本帖最后由 qq76020500 于 2009-7-22 12:58 编辑 ]
作者: qq76020500    时间: 2009-7-22 12:55

或者说啊
A文件夹里面有5000000个*.TXT文本文件
我需要把里面的TXT文件打开然后关闭
是所有的TXT被打开后马上关闭(全部打开一次关闭一次)
而且5000000个txt的名称没规则

能做到吗 下午来看一下 谢谢
作者: keen    时间: 2009-7-22 13:19

把下面的代码存为.bat文件,放在你要存放n多txt文件,或n多xls文件的目录下:
TXT:
  1. @for /f "delims=" %%i in ('dir /b *.txt') do @start "" "%%i"&&taskkill /f /im notepad.exe
复制代码
XLS:
  1. @for /f "delims=" %%i in ('dir /b *.xls') do @start "" "%%i"&&taskkill /f /im excel.exe
复制代码

作者: Lumiere    时间: 2009-7-22 13:26

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b *.xls') do (
  3.     start "" "%%a"
  4.     for /f "tokens=2" %%b in ('tasklist^|findstr /i "excel.exe"') do set PID=%%b
  5.     taskkill /pid:!PID!>>detail.txt
  6. )
  7. pause>nul
复制代码

[ 本帖最后由 Lumiere 于 2009-7-22 13:32 编辑 ]
作者: qq76020500    时间: 2009-7-22 17:04

很好
可以接着干了
谢谢
英文名字的就是牛逼啊
作者: Batcher    时间: 2009-7-22 17:14     标题: 回复 8楼 的帖子

杀进程时,可以通过taskkill命令的/im开关直接根据进程名来,不必拐个弯去用PID,你可以试试^_^

遍历文件时,不要动不动就用for /f + dir,直接for %%a in (*.xls) do,这样简单些。
作者: Lumiere    时间: 2009-7-22 17:14     标题: 回复 9楼 的帖子

谁说英文名的就一定牛撒,我的就是英文名,我就不牛,但是巡查兄keen是英文名,他就很牛,他的代码就比我的号,简单多了,我走弯路了。
作者: zhouyongjun    时间: 2009-7-23 00:15

哈哈,如果是打开不会自己结束的P恐怕就要麻烦点了(*^__^*)
作者: Lumiere    时间: 2009-7-23 00:22     标题: 回复 10楼 的帖子

恩,多谢管理员,受教了。taskkill不怎么会用,以前懂得用PID杀进程的方法,所以就用了,那个im开关在命令行里解释成什么进程图像名,实在无法理解,所以走了弯路。至于遍历同一类型文件,确实应该用最简单的,不单代码简单而且效率更高。多谢啦
作者: qq76020500    时间: 2009-7-23 11:46

xls文件若用VBA代码相对BAT代码的速度快10倍
可惜在VBA求助没接到回复
不过我把其他含有打开关闭动作的VBA代码修改了一下
发现VBA处理本身的程序真的很快。

.
作者: qq76020500    时间: 2009-7-23 11:57

@echo off
net share C$/del
net share d$/del
netshare ipc$/del
net share admin$ /del
C:\Program Files\SkyNet\Firewall\PFW
C:\Program Files\ChinaNet\VnetClient.exe

我上网都先开防火墙PFW

然后ChinaNet\VnetClient.exe
不知道还有什么缺口没堵住的
上网安全方面帮我修改一下
做一个bat


[ 本帖最后由 qq76020500 于 2009-7-23 12:00 编辑 ]
作者: qq76020500    时间: 2009-7-23 11:58

名字叫做 一键安全上网。BAT
系统是xp
作者: keen    时间: 2009-7-23 14:53

原帖由 qq76020500 于 2009-7-23 11:57 发表
@echo off
net share C$/del
net share d$/del
netshare ipc$/del
net share admin$ /del
C:\Program Files\SkyNet\Firewall\PFW
C:\Program Files\ChinaNet\VnetClient.exe

我上网都先开防火墙PFW

...



你有新问题,请重新发帖,做到一贴一问。
你的本帖的问题得到解决后,请给标题前面主动添加[已解决]字样。
作者: FU8989    时间: 2010-7-24 10:07     标题: 回复 7楼 的帖子

师傅 你好 请问处样打开"C:\WINDOWS\Fonts"文件夹后又马上关闭它 谢谢
作者: gzsugfly    时间: 2011-4-18 13:24

14# qq76020500


去55346201 群,驿屋学习Office Excel,里面vba高手很多的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2