批处理文件使用 if 条件在多个位置创建快捷方式

批处理文件使用 if 条件在多个位置创建快捷方式

我们有一个批处理文件,用于在 Windows 2003 计算机上创建快捷方式。我们使用的命令如下:

echo copy the shortcut to the server All Users folder for windows 2003...
xcopy "%OutputDir%%LocalOutputDir%\Shortcuts\*.*" "\\%SERVERNAME%\c$\Documents and Settings\All Users\Start Menu\Programs\Startup\*.*"

现在,我们也有一些新的 Windows 2008 机器,并且它们的快捷方式文件夹(所有用户)的路径不同(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup)。

所以我的问题是,我们如何设置 if 条件,以便如果批处理文件找不到 2003 的位置,它会将快捷方式保存在 2008 机器的位置...

谢谢!

答案1

IF <statement>  (
..
..
) ELSE (
...
...
)

......或者在有第三条路径的情况下,使用单独的 IF 语句而不使用 ELSE

IF exist "\\%SERVERNAME%\c$\Documents and Settings\" (
...
...
)

IF exist "\\%SERVERNAME%\C:\ProgramData\Microsoft\Windows\Start Menu\" (
...
...
) 

您可能需要使用/检查环境变量“ALLUSERSPROFILE“它自动授予您访问以下文件夹的权限:

在 XP 和 2000 上> C:\Documents and Settings\All Users
在 Vista/Win7/+ 上> C:\ProgramData

如果使用变量而不是硬编码路径,则不需要 IF 语句...

xcopy "%OutputDir%%LocalOutputDir%\Shortcuts\*.*" "\\%SERVERNAME%\%ALLUSERSPROFILE%\Start Menu\Programs\Startup\*.*"

相关内容