Batch file 在命令提示符下使用Taskkill(批处理)
我有4个excel文件(city.xls、rule.xls、adv.xls和maping.xls),所有excel文件都在其中打开。如何在批处理/CMD编程中使用taskkill强制仅关闭一个文件(例如:maping.xls)?来自taskkill的帮助(taskkill/?)Batch file 在命令提示符下使用Taskkill(批处理),batch-file,cmd,taskkill,Batch File,Cmd,Taskkill,我有4个excel文件(city.xls、rule.xls、adv.xls和maping.xls),所有excel文件都在其中打开。如何在批处理/CMD编程中使用taskkill强制仅关闭一个文件(例如:maping.xls)?来自taskkill的帮助(taskkill/?) TASKKILL/F/FI“PID ge 1000”/FI“WINDOWTITLE ne untitle*”TASKKILL将消除一个进程及其所有窗口。您的工作簿可以在同一个excel实例下全部打开,因此taskkill
TASKKILL/F/FI“PID ge 1000”/FI“WINDOWTITLE ne untitle*”TASKKILL将消除一个进程及其所有窗口。您的工作簿可以在同一个excel实例下全部打开,因此taskkill无法执行您需要的操作 您可以使用一些工具,如AutoIt、nircmd、cmdow等。。。只需关闭您需要的窗口,但您必须处理对话框请求保存工作簿的可能性 这是一个批处理文件(只需另存为.cmd并更改xlsx文件),其中包含一个脚本部分,用于搜索工作簿并在没有对话框的情况下关闭它。没有bulleproof,只在打开工作簿的用户的同一会话下工作,但只是一个开始示例
@if (@This==@IsBatch) @then
@echo off
rem **** batch zone *********************************************************
rem call javascript part of batch file
cscript //nologo //e:Javascript "%~dpnx0" /workbook:"j:\wherever\myWorkbook.xlsx"
rem End of batch area. Ensure batch ends execution before reaching
rem javascript zone
exit /b
@end
// **** Javascript zone *****************************************************
if (!WScript.Arguments.Named.Exists('workbook')) {
// if no workbook argument, no work to do
WScript.Quit(1);
};
// retrieve workbook name
var workbook = WScript.Arguments.Named.Item('workbook');
var exitCode = 0;
try {
// search for workbook application
var wb = GetObject(workbook);
// get handle to application containing workbook
var app = wb.Application;
// close workbook. Ask for save = false
wb.Close( false );
// if no more workbooks open in application, close it
if (app.Workbooks.Count == 0){
app.Quit();
};
} catch(e){
// some kind of problem with objects
// WScript.Echo( e.description );
exitCode = 2;
};
app =null;
wb =null;
WScript.Quit(exitCode);
如果所有工作簿都在可执行文件的同一实例中打开,则所有工作簿都将关闭,因为可执行文件已关闭
“PID ge 1000”
id在此可能不需要。可能应该使用窗口标题eq
。+1任何方式。我认为每个工作簿都处于单独的过程中,但我喜欢此脚本。+1刚刚用excel 2007测试过,不知道其他版本。如果双击excel文件,将启动一个进程。如果双击另一个excel文件,它将在同一进程下的新窗口中打开。现在,如果您直接从运行命令或windows菜单调用excel,将创建一个新进程。因此,这取决于用户以及如何打开工作簿。