在分配第一個環境變量(下面的腳本輸出)後,我的批處理文件過早終止。我嘗試過使用errorlevels轉換echo,將輸出發送到文本文件並檢查語法。我花了幾個小時研究調試批處理腳本,但我終於碰到了一堵磚牆。批處理文件在目錄名稱中搜索字符串
腳本的目標:搜索用戶程序文件的每個目錄名稱,尋找常見的防病毒程序。我意識到,爲了達到這個目的,最簡單的方式是通過一系列防病毒名稱進行迭代,但我現在想保持簡單。
@echo off
::variables
set AntiVirus1="Initial Value"
IF NOT ERRORLEVEL 0 echo %ERRORLEVEL%
else echo "env. variable created successfully."
for /d %%f in (""%ProgramFiles%\*"") do (
{
IF NOT ERRORLEVEL 0 echo %ERRORLEVEL%
echo "%%f"
if exist /i "*McAfee*" < %%f %AntiVirus1%="McAfee"
::find "Norton" < %%f
::find "Comodo" < %%f
::find "AVG" < %%f
}
echo %AntiVirus1%
@pause
輸出這個腳本:
C:\用戶\馬特\桌面>設置AntiVirus1 = 「初始值」 C:\用戶\馬特\桌面>
有人能指出我我做錯了什麼?
UPDATE修正後的腳本,現在的工作,但返回不正確的結果:
::@echo off
::variables
set AntiVirus1="Initial Value"
IF NOT ERRORLEVEL 0 (echo %ERRORLEVEL%) ELSE echo "env. variable created successfully."
echo Checking Program Files...
for /d %%f in ("%ProgramFiles%\*") do (
echo "%%f"
if %%f=="*adobe*" set AntiVirus1="adobe"
)
echo %AntiVirus1% found
@pause
請不要更新這樣的問題。不僅你讓你的帖子不一致(你的第一段提到過早的終止不再是後面的腳本的問題!),但也沒有解決我的答案的第一部分。目前我通過在原始文本下面添加修改後的腳本來修復此問題。如果您認爲有必要,您可能需要進一步更新該文章,並附上明確的附加請求文字。 –
良好的通話。我會確保將來做到這一點。 – KongMD