找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29959|回复: 11

[文本处理] [已解决]在线请教老师, bat能否实现关闭已打开的文件

[复制链接]
发表于 2015-3-24 19:25:30 | 显示全部楼层 |阅读模式
本帖最后由 7016427 于 2015-5-15 09:53 编辑

请教老师,bat能否实现关闭已打开的"d:\每日文件\文件目录.xls"文件?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-3-24 22:38:18 | 显示全部楼层
干进程没问题,但一个进程里不一定只打开了一个 excel 文件
发表于 2015-3-24 22:54:26 | 显示全部楼层
文件路径暂时没找到好方法,但是文件名是可以滴:
  1. @echo off
  2. for /f "tokens=2" %%i in ('tasklist /v ^| findstr /c:"文件目录.xls"') do (
  3.     taskkill /f /pid %%i
  4. )
复制代码
发表于 2015-3-25 01:26:12 | 显示全部楼层
本帖最后由 tmplinshi 于 2015-3-25 01:39 编辑
  1. ' 2>nul & @cscript //nologo -e:vbscript %0 "d:\每日文件\文件目录.xls" & exit/b

  2. CloseExcelWindow( WScript.Arguments(0) )

  3. Function CloseExcelWindow(FileName)
  4.         Set xls = GetObject(FileName)
  5.        
  6.         ' 如果只打开了一个 Excel 窗口,xls.Close 执行后还会留下一个空白窗口。
  7.         ' 所以,如果只打开了一个 Excel 窗口就直接退出进程,否则关闭。
  8.         If xls.Application.WorkBooks.Count = 1 Then
  9.                 xls.Application.Quit
  10.         Else
  11.                 xls.Close
  12.         End If
  13.        
  14. End Function
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 好办法!

查看全部评分

 楼主| 发表于 2015-3-25 07:20:35 | 显示全部楼层
[已解决!]回复 4# tmplinshi
你好!如果能优化一下更好,看着代码较复杂!
 楼主| 发表于 2015-3-25 07:21:51 | 显示全部楼层
[未解决!]回复 3# DAIC
执行后,文件仍然存在!
发表于 2015-3-25 09:06:59 | 显示全部楼层
回复 6# 7016427


我这里测试可以关掉。你执行这个代码把报错信息发给我看看:
  1. for /f "tokens=2" %%i in ('tasklist /v ^| findstr /c:"文件目录.xls"') do (
  2.     taskkill /f /pid %%i
  3. )
  4. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-3-25 12:57:24 | 显示全部楼层
[测试错误]回复 7# DAIC
@echo off
for /f "tokens=2" %%i in ('tasklist /v ^| findstr /d:"每日文件\文件目录.xls"') do (
    taskkill /f /pid %%i
)
pause
请老师看看怎么改?
发表于 2015-3-25 13:20:43 | 显示全部楼层
回复 8# 7016427


    照抄7楼代码,不要做什么修改,那个 /c 不是C盘的意思
 楼主| 发表于 2015-3-25 22:14:30 | 显示全部楼层
[请教语句问题]回复 9# DAIC
请问老师,7楼 那个 /c 是什么意思?
发表于 2015-3-26 12:52:28 | 显示全部楼层
回复 10# 7016427


打开命令行窗口,执行 findstr /? 可以看到每个参数的详细解释。
也可以参考别人写的教程 http://bbs.bathome.net/thread-14682-1-1.html
 楼主| 发表于 2015-5-14 22:06:49 | 显示全部楼层

[已解决] 在线请教老师, bat能否实现关闭已打开的文件

回复 4# tmplinshi
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 03:59 , Processed in 0.020978 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表