2016-08-24 77 views
0

我在批量編寫的程序上有一個插件系統,如下所示; (感謝https://stackoverflow.com/users/3536342/davidpostillBATCH防止用戶從程序外部打開文件?

:plugindragon 
echo. 
echo Plugins 
echo ============== 
dir /b plugins\*.cmd 
echo. 
echo Enter the name of the plugin you want to run. 
set /p plugin=root/plugins/[email protected]:~$ 
start "" plugins\%plugin% 
goto root 

有什麼辦法阻止我的程序的用戶打開該而不運行pluginDragon腳本插件?因爲他們不能直接進入插件文件夾並雙擊應用程序(因爲它們都是批量編寫的)。他們需要使用「終端」窗口打開它們,只有這一點。

+0

讓他們隱藏文件? – SomethingDark

+1

還設置禁止執行的權限,並通過批處理文件中的'icacls'臨時清除這些權限。 – wOxxOm

回答

0

這裏是你的腳本的修正版,執行以下操作:

  • 使用attrib
  • 變化對文件的權限使用,使他們不能打開使隱藏文件和系統文件icacls

    :plugindragon 
    echo. 
    echo Plugins 
    echo ============== 
    dir /b plugins\*.cmd 
    echo. 
    echo Enter the name of the plugin you want to run (Exclude extension). 
    set /p plugin=root/plugins/[email protected]:~$ 
    
    :: Grant permission to access file 
        icacls "plugins\%plugin%.cmd" /grant everyone:F /T /C /Q>nul 2>&1 
    
    :: Unhide the file 
        attrib -h -s -r -a "plugins\%plugin%.cmd" >nul 
    
    start /wait "" plugins\%plugin%.cmd 
    
    :: Hide the file 
    attrib +h +s +r +a "plugins\%plugin%.cmd" >nul 
    
    :: Denies access to the file 
    icacls "plugins\%plugin%.cmd" /deny everyone:F /T /C /Q>nul 2>&1 
    
    goto root