gpt4 book ai didi

batch-file - 在命令提示符下使用 Taskkill(批处理)

转载 作者:行者123 更新时间:2023-12-04 02:42:18 24 4
gpt4 key购买 nike

我有 4 个 excel 文件(city.xls、rule.xls、adv.xls 和 mapping.xls),所有 excel 文件都在其中打开。如何在批处理/CMD 编程中使用 taskkill 强制关闭一个文件(例如:mapping.xls)?

最佳答案

Taskkill 将消除一个进程及其所有窗口。您的工作簿可以在同一个 excel 实例下全部打开,因此,taskkill 无法执行您需要的操作。

您可以使用 AutoIt、nircmd、cmdow 等工具来关闭您需要的窗口,但您必须处理要求保存工作簿的对话框的可能性。

这是一个批处理文件(只需另存为 .cmd 并更改 xlsx 文件),其中包含一个脚本部分,用于搜索工作簿并在没有对话框的情况下将其关闭。没有防弹性,只能在打开工作簿的用户的同一 session 下工作,但只是一个起始示例。

@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);

关于batch-file - 在命令提示符下使用 Taskkill(批处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19652031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com