标题: [文本处理] [已解决]在线请教老师, bat能否实现关闭已打开的文件 [打印本页]
作者: 7016427 时间: 2015-3-24 19:25 标题: [已解决]在线请教老师, bat能否实现关闭已打开的文件
本帖最后由 7016427 于 2015-5-15 09:53 编辑
请教老师,bat能否实现关闭已打开的"d:\每日文件\文件目录.xls"文件?
作者: CrLf 时间: 2015-3-24 22:38
干进程没问题,但一个进程里不一定只打开了一个 excel 文件
作者: DAIC 时间: 2015-3-24 22:54
文件路径暂时没找到好方法,但是文件名是可以滴:- @echo off
- for /f "tokens=2" %%i in ('tasklist /v ^| findstr /c:"文件目录.xls"') do (
- taskkill /f /pid %%i
- )
复制代码
作者: tmplinshi 时间: 2015-3-25 01:26
本帖最后由 tmplinshi 于 2015-3-25 01:39 编辑
- ' 2>nul & @cscript //nologo -e:vbscript %0 "d:\每日文件\文件目录.xls" & exit/b
-
- CloseExcelWindow( WScript.Arguments(0) )
-
- Function CloseExcelWindow(FileName)
- Set xls = GetObject(FileName)
-
- ' 如果只打开了一个 Excel 窗口,xls.Close 执行后还会留下一个空白窗口。
- ' 所以,如果只打开了一个 Excel 窗口就直接退出进程,否则关闭。
- If xls.Application.WorkBooks.Count = 1 Then
- xls.Application.Quit
- Else
- xls.Close
- End If
-
- End Function
复制代码
作者: 7016427 时间: 2015-3-25 07:20
[已解决!]回复 4# tmplinshi
你好!如果能优化一下更好,看着代码较复杂!
作者: 7016427 时间: 2015-3-25 07:21
[未解决!]回复 3# DAIC
执行后,文件仍然存在!
作者: DAIC 时间: 2015-3-25 09:06
回复 6# 7016427
我这里测试可以关掉。你执行这个代码把报错信息发给我看看:- for /f "tokens=2" %%i in ('tasklist /v ^| findstr /c:"文件目录.xls"') do (
- taskkill /f /pid %%i
- )
- pause
复制代码
作者: 7016427 时间: 2015-3-25 12:57
[测试错误]回复 7# DAIC
@echo off
for /f "tokens=2" %%i in ('tasklist /v ^| findstr /d:"每日文件\文件目录.xls"') do (
taskkill /f /pid %%i
)
pause
请老师看看怎么改?
作者: DAIC 时间: 2015-3-25 13:20
回复 8# 7016427
照抄7楼代码,不要做什么修改,那个 /c 不是C盘的意思
作者: 7016427 时间: 2015-3-25 22:14
[请教语句问题]回复 9# DAIC
请问老师,7楼 那个 /c 是什么意思?
作者: DAIC 时间: 2015-3-26 12:52
回复 10# 7016427
打开命令行窗口,执行 findstr /? 可以看到每个参数的详细解释。
也可以参考别人写的教程 http://bbs.bathome.net/thread-14682-1-1.html
作者: 7016427 时间: 2015-5-14 22:06 标题: [已解决] 在线请教老师, bat能否实现关闭已打开的文件
回复 4# tmplinshi
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |