2016-11-11 50 views
1

我在寻找一个批处理脚本,如果软件存在 例如创建一个文本文件,我有这样的断码创建TXT如果软件存在

IF EXIST "C:\Program Files (x86)\Microsoft Office\root\Office16\Outlook.exe" 

创建一个文本文件,这里C:\用户\ office2016.txt与文本“办公室2016安装完成”

否则结束脚本

我能够创建一个文本文件,使用此命令 @echo office 2016 installed> c:\Users\office2016.txt

我需要帮助将两者结合在一起。

+0

这是一个权限问题。您没有写入来在C:\ Users中创建文件。 – Squashman

回答

0

这看起来像是XY problem;你真正想要的是某种迹象表明Office安装在你的系统上。

C:\Temp>if exist "C:\Program Files (x86)\Microsoft Office\root\Office16\Outlook.exe" echo Office installed >> C:\Temp\indicator.txt对我来说工作正常的命令,所以我的猜测是,因为你试图写C:\Users作为一个非管理员,你无权这样做。

在我的系统,当我以非管理员运行:

C:\Users>type con > test.txt 
Access is denied. 

C:\Users> 

要了解用户是否已经安装了Office,你应该检查注册表; REG命令可以为你做到这一点:

@echo off 
REG QUERY HKLM\SOFTWARE\Microsoft\Office\16.0 
IF ERRORLEVEL 0 ECHO Office 2016 installed >> C:\Users\MyUsername\File.txt 
+0

但是,我喜欢这个脚本,几个月前我们推出了Skype for Business,没有整个办公室,这是HKLM \ SOFTWARE \ Microsoft \ Office \ 16.0的一部分。这就是为什么我想使用Outlook.exe,除非有一个用于Outlook的注册表项2016我可以使用,而不是肯定知道。 – Sam

+0

@Sam'HKLM \ SOFTWARE \ Microsoft \ Office \ 16.0 \ Outlook'? –

+0

现在我想知道即使未安装Outlook,是否创建了'HKLM \ SOFTWARE \ Microsoft \ Office \ 16.0 \ Outlook',因为正如我所说的,我们推了办公软件包,但排除了word,excel powerpoint。我会看看机器,看看它是否不存在,如果不是它们,我是金。谢谢 – Sam