使用Windows批处理文件命令打开、等待、保存、关闭和复制文件

您所在的位置:网站首页 bat批量打开并另存 使用Windows批处理文件命令打开、等待、保存、关闭和复制文件

使用Windows批处理文件命令打开、等待、保存、关闭和复制文件

#使用Windows批处理文件命令打开、等待、保存、关闭和复制文件| 来源: 网络整理| 查看: 265

Marie (TooLong;ToRead)在不连贯的评论中

我建议,在这种情况下,一种更简单的替代方法是使用一个简单的命令行工具--参见Orlandos Sendkey实用程序(这个示例几乎就是您想要做的)

从cpap.com.br/orlando下载sendkey查看演示如何运行。使用空白工作表打开excel,并在CMD>上运行此演示字符串

SendKeys.exe 1.5 10 "Microsoft Excel" "Hello!~{PAUSE 2}After 2s.~{PAUSE 2}%(FS)~"

适应您自己版本的excel键,因为%(FS)是ALT文件保存的英文版本

你回答说

@KJ谢谢,KJ,不幸的是,我不能用我的电脑下载Orlando。

因此,我们继续以更脏的方式进行操作,但是您的仍然需要一种通过调用自动保存程序来保存文件的方法,无论如何,在源.xlsm中使用扩展的excel宏可以很容易地完成这一操作。

在所有这些更改之后,您的非工作文件现在应该在您的问题中被替换为

代码语言:javascript复制@echo off start "Excel Running" /MIN EXCEL.EXE "\\XXX\Fichier.xlsm" REM add a delay of **2 minutes !** whilst sheet recalculates before saving a copy timeout 120

此时复制未使用键保存的文件的REM将不会。

REM是解决问题的真正需要,除非您使用宏?。

REM 见后面的

代码语言:javascript复制xcopy/y "\\XXX\Dossier_avant*.*" "\\XXX\Dossier_apres\" REM add a 3 second delay to check above worked but is not really needed timeout 3 REM temporary for debugging. Later just REM it out TASKLIST /M |Find /i "exce" REM this line should be working with either a SUCCESS: or ERROR: TASKKILL /T /F /IM excel.exe REM keep this line for seeing errors above, once happy, it can become REM PAUSE PAUSE

我认为,如果将(受IT策略限制)限制在命令行,最好编写自己的自动保存宏,但是,我的问题是,我不知道您是否需要用于多个input.xlsm。

因此,将其保存为OpenRunSaveExit.vbs,保存在您的.bat所在的工作文件夹中。在后面的步骤中,我没有在名称中使用空格或&,这是有原因的。

代码语言:javascript复制Set WshShell = WScript.CreateObject("WScript.Shell") ' You may need to include the path to excel.exe if it is a portable version like mine WshShell.Run "EXCEL.EXE "+"\\XXX\Fichier.xlsm", 9 ' 120000 milli-seconds = 2 minutes WScript.Sleep 120000 ' These are the English key combinations for ALT+File+Save . SO alter or remove if not needed WshShell.SendKeys "%FS" ' These are the English key combinations for ALT+File+eXit . SO alter if needed for french excel WshShell.SendKeys "%FX" ' Lets us wait 2 seconds for clean closure WScript.Sleep 2000

,正如Peter在 他的回答中所指出的,您需要在xcopy之前进行/WAIT,并且取决于您的vbs文件处理的设置方式,您可能不需要在起始行中使用Wscript。

现在将您的.bat替换为

代码语言:javascript复制@echo off start /WAIT Wscript OpenRunSaveExit.vbs xcopy/y "\\XXX\Dossier_avant*.*" "\\XXX\Dossier_apres\" pause

检查它是否运行,而不需要任务命中。

最后,为什么使用2-4行.bat,因为桌面快捷方式可能更容易使用。因此,为.vbs文件创建一个快捷方式(右键单击.vbs,并以英文表示其创建快捷方式),并将其移动到桌面。

然后像这样更改属性(其中&有一个特殊的含义,因此.vbs文件名不能有空格或&.)

代码语言:javascript复制%comspec% /c "start /wait wscript.exe OpenRunSaveExit.vbs & xcopy/y "\\XXX\Dossier_avant*.*" "\\XXX\Dossier_apres\" & pause"

我忘了在这张图片中添加Peters start / wait,直到稍后



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3