擁有一個 Windows 程式,它也可以從背景關系選單中擦除檔案和檔案夾,即使根本沒有確認,然后我創建了一個包含以下內容的批處理檔案
@ECHO OFF
CHOICE /M "Do you want to Wipe Files"
IF ERRORLEVEL 2 GOTO QUIT
IF ERRORLEVEL 1 GOTO RUN
:RUN
START "" "C:\Program Files\MyProgram\myexec.exe" /wipe "%~1"
EXIT
:QUIT
EXIT
和具有以下條目的注冊表項
[HKEY_CLASSES_ROOT\*\shell\wipefiles\command]
@="\"C:\\Program Files\\MyProgram\\myexec-start.cmd\" \"%1\""
只是為了在擦除檔案或檔案夾之前獲得安全機會,它確實有效。
但是,如果選擇了多個檔案,那么它會提示您回答Y或N盡可能多的檔案數量,此外,cmd 視窗會保持打開狀態,直到您點擊Y或N盡可能多的檔案數量。
無論選擇的檔案數量如何,有沒有辦法一次性回答Y或N(關閉 cmd 螢屏)?
uj5u.com熱心網友回復:
似乎沒有簡單的方法來執行您從背景關系選單中請求的操作,因為每個選定的檔案都會打開一個單獨的行程。但是可以從發送到選單輕松完成:在 SendTo 檔案夾中為您的腳本創建一個快捷方式,現在您可以發送任意數量的檔案或檔案夾。腳本內容如下:
@ECHO OFF
CHOICE / M "Do you want to Wipe Files"
IF ERRORLEVEL 2 GOTO QUIT
:: If your software enables file processing in a chain, such as myexec.exe /wipe filename1 filename2 ..., use this syntax:
START "" "C:\Program Files\MyProgram\myexec.exe" /wipe %*
:: If not, use the for loop:
for %%f in (%*) do START "" "C:\Program Files\MyProgram\myexec.exe" /wipe %%f
: QUIT
也許這與主題有點偏差,但您可以在 VBScript 中這樣做:
Set Shell = CreateObject("WScript.Shell")
if MsgBox("Do you want to Wipe Files?", vbQuestion vbYesNo, "wipefiles") = vbYes then
for each Arg in WScript.Arguments
Shell.Run """C:\Program Files\MyProgram\myexec.exe"" /wipe " & """" & Arg & """",0,True
Next
end if
它將顯示一個圖形訊息框,要求用戶確認洗掉,沒有任何終端視窗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/435563.html
