簡體   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