[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 如何用批处理局域网更新文件

本帖最后由 CrLf 于 2012-1-1 17:33 编辑

目录1:\\192.168.0.2\加载区
目录2:C:\Documents and Settings\当前登录用户\Application Data\Microsoft\AddIns
(当前登录用户为当前系统登录用户名,XP环境)

有个文件(测试.xla)存放在:目录1
要把这个文件复制到:目录2

执行时,提示:
执行此动作会关闭当前打开的所有Excel文件,请确认是否都已保存。
点:否(N),不执行,退出批处理。
点:是(Y),执行动作,关闭当前打开的所有Excel文件,不保存。

复制:目录1 中的 指定文件 到 目录2(如果目录2中有这个文件,直接替换,不提醒。)

文件更新成功。

退出批处理。

set /p a=提示:执行此动作会关闭当前打开的所有Excel文件,请确认是否都已保存。(Y/N)
if /i "%a%"=="y" taskkill /F /im excel.exe & copy /y \\192.168.0.2\加载区\测试.xla "%USERPROFILE%\Application Data\Microsoft\AddIns"
if /i "%a%"=="n" exit

TOP

set /p a=提示:执行此动作会关闭当前打开的所有Excel文件,请确认是否都已保存。(Y/N)
if /i "%a%"=="y"  ...
522235677 发表于 2011-12-31 15:52



    感谢仁兄指点,效果不错,测试了下,有两个问题,烦请再帮忙修正,谢谢。

1、上图中用黄色圈住的那部分是多余的,不需要显示。
2、如果目录2中没有指定的文件,则copy不成功。(如果没有文件直接copy,有文件则替换,均不提示。)

还有一个问题,说法是完成后,有个提示完成的窗口,让用户来点击。(这样才知道已经完成了嘛)

TOP

set /p a=提示:执行此动作会关闭当前打开的所有Excel文件,请确认是否都已保存。(Y/N)
if /i "%a%"=="y" (
taskkill /F /im excel.exe
for %%a in (\\192.168.0.2\加载区\测试.xla) do (
if exist %%a (
copy /y %%a "%USERPROFILE%\Application Data\Microsoft\AddIns"
start "" mshta vbscript:msgbox("完成",0,"这是提示窗口")(window.close)
) else (
echo %%a 文件不存在
)
)
)
if /i "%a%"=="n" exit

QQ;646397053

TOP

本帖最后由 opelwang 于 2011-12-31 20:51 编辑

感谢指点,经测试。
3楼的第1个问题仍然存在,另完成的窗口提示没有。

TOP

返回列表