这个批处理脚本有什么问题?

这个批处理脚本有什么问题?

我一直在尝试设置一个批处理脚本,它应该执行以下操作:

首先,安装一个 exe 文件,最好是悄悄地安装(当然要检查它是否已经安装)。然后遍历到 .net 框架的安装位置。遍历之后,它应该设置 Caspol 权限并重新加气。然后复制一些快捷方式和一个检查文件(看看这是否已经完成)。

有人知道为什么这不起作用吗?当我通过复制并粘贴到命令行中执行命令时,一切都正常,但脚本运行时却不行。

如果您能对错误之处提出建议并做出改进,我们将不胜感激。

REM Upgrade RS Framework 2.0V
@echo off

if exist "C:\CheckNet.txt" GOTO END

P:\RS\Klient\PClient.exe

cd\
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727

caspol -machine -addgroup 1. -url \\Domain\Program\RS\* FullTrust -n RS -s on

regasm \\Domain\Program\RS\TE.HCW.PRS.RS.Wrapper.dll 

copy \\Domain\Program\TE\RS\ClientInstallation\CheckNet.txt c:\
COPY "\\Domain\Program\shortcut\RS\*.*" "c:\Documents and settings\All Users\Desktop"

:END

答案1

我猜你没有明确将驱动器设置为“C:”。脚本运行时,其当前工作目录可能不在 c: 驱动器上。

更新:调用 caspol 和 regasm 的完整路径

尝试这个:

REM Upgrade RS Framework 2.0V
@echo off

if exist "C:\CheckNet.txt" GOTO END

P:\RS\Klient\PClient.exe

C:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol -machine -addgroup 1. -url \\Domain\Program\RS\* FullTrust -n RS -s on
C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm \\Domain\Program\RS\TE.HCW.PRS.RS.Wrapper.dll 

copy "\\Domain\Program\shortcut\RS\*.*" "c:\Documents and settings\All Users\Desktop"
copy \\Domain\Program\TE\RS\ClientInstallation\CheckNet.txt c:\

:END

答案2

如果脚本找不到 CASPOL 或 REGASM,则很可能脚本运行​​的路径与命令窗口运行的路径不同。在命令窗口中键入 set path 以查看 Windows 将搜索文件的路径。修复此问题的三种方法:一)更新脚本运行的环境二)向脚本添加 set path 命令以在 CASPOL 行之前设置路径。三)在 CASPOL 和 REGASM 上使用完整路径,例如 c:\directorypath\CASPOL ....

相关内容