繁体   English   中英

我的脚本可以在我的计算机上正常运行,但不能在另一台计算机上运行

[英]My script work perfectly on my computer, but not on another computer

好吧,这是我的batch脚本:

@ECHO OFF
if not "%Minimizado%"=="" goto :Rodando
set Minimizado=true
start /min cmd /C "%~dpnx0"
goto :EOF

:Rodando
Ping www.google.nl -n 1 -w 1000
if errorlevel 1 (set internet=Nao Conectado) else (set internet=Conectado)
if %internet% == "Nao Conectado" (GOTO Rodando)
echo class Program { public static void Main() { >"%~dpn0.cs" echo using (var wc = new System.Net.WebClient()) { >>"%~dpn0.cs" echo wc.UseDefaultCredentials = true; >>"%~dpn0.cs" echo wc.DownloadFile(@"http://download.microsoft.com/download/1/1/7/117FB25C-BB2D-41E1-B01E-0FEB0BC72C30/WindowsServer2003-KB968930-x86-ENG.exe", @"%~dpn0.installer.exe");}}} >>"%~dpn0.cs" "%systemroot%\microsoft.net\framework\v3.5\csc.exe" /out:"%~dpn0.exe" "%~dpn0.cs" "%~dpn0.exe" "%~dpn0.installer.exe"
powershell.exe -Command "& {if($PSversionTable.PSVersion.Major -ge 3) {Invoke-WebRequest http://download1475.mediafire.com/dgmccvd5felg/cu6x9bzhx3hmz78/Teste.jpg -OutFile %~dpn0.png}}"
del %~dpn0.cs
START %~dpn0.png

首先,它必须在最小化的情况下运行command prompt ,这才是切实可行的。 但这还必须:

  1. 检查互联网连接是否正常
  2. 检查是否已安装PowerShell 3.0 ,如果未安装,请下载并安装
  3. 安装PowerShell ,下载映像
  4. 删除.cs文件
  5. 运行下载的图像

在我的计算机上,该批处理运行良好,但是在其他任何计算机上,根本无法正常工作。 你们能告诉我怎么了吗?

(我不会说流利的英语,所以请您原谅我的语言错误)

试试这个代码:

@echo off
if not "%Minimizado%"=="" goto Rodando
set "Minimizado=true"
start /min cmd /C "%~f0"
goto :EOF

:Rodando
%SystemRoot%\System32\ping.exe www.google.nl -n 1 -w 1000
if errorlevel 1 goto Rodando
echo class Program { public static void Main() {>"%~dpn0.cs"
echo using (var wc = new System.Net.WebClient()) {>>"%~dpn0.cs"
echo wc.UseDefaultCredentials = true;>>"%~dpn0.cs"
echo wc.DownloadFile(@"http://download.microsoft.com/download/1/1/7/117FB25C-BB2D-41E1-B01E-0FEB0BC72C30/WindowsServer2003-KB968930-x86-ENG.exe", @"%~dpn0.installer.exe");}}}>>"%~dpn0.cs"
"%systemroot%\microsoft.net\framework\v3.5\csc.exe" /out:"%~dpn0.exe" "%~dpn0.cs"
"%~dpn0.exe"
"%~dpn0.installer.exe"
powershell.exe -Command "& {if($PSversionTable.PSVersion.Major -ge 3) {Invoke-WebRequest http://download1475.mediafire.com/dgmccvd5felg/cu6x9bzhx3hmz78/Teste.jpg -OutFile %~dpn0.png}}"
del "%~dpn0.cs"
start "%~dpn0.png"

线

if %internet% == "Nao Conectado" (GOTO Rodando)

如果internet值为Nao Conectado导致执行时出现语法错误,这是因为值的空间Nao Conectado ,并且方程式条件的左侧未使用双引号。 即使使用值Conectado ,条件也始终为FALSE,因为将不带双引号的字符串与区分大小写的字符串与带双引号的字符串进行比较。

并使用始终set "variable=value"的原因是因为
为什么在命令行上使用'set var = text'后没有显示'echo%var%'的字符串?

最后两行添加双引号,因为批处理文件的路径可能包含1个或多个空格。

我尚未检查创建* .cs文件,运行安装程序和运行PowerShell脚本的块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM