加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何在Windows中为diskpart cmd创建批处理文件,可以锁定(只读)和

发布时间:2020-12-14 05:38:40 所属栏目:Windows 来源:网络整理
导读:我正在尝试创建批处理文件来打开/关闭驱动器的只读模式. 我创建了两个调用diskpart的批处理文件,以及两个包含要传递给diskpart的命令的文本文件. 当我单独运行diskpart命令时,它们工作;但是当我通过批处理文件和文本文件运行它们时,它们不起作用. 用于锁定磁
我正在尝试创建批处理文件来打开/关闭驱动器的只读模式.

我创建了两个调用diskpart的批处理文件,以及两个包含要传递给diskpart的命令的文本文件.

当我单独运行diskpart命令时,它们工作;但是当我通过批处理文件和文本文件运行它们时,它们不起作用.

用于锁定磁盘的批处理文件

diskpart /s readonlyfile.txt > logfile .txt
pause

批量文件解锁磁盘

diskpart /s offreadonlyfile.txt
pause

readonlyfile.txt(用于锁定磁盘)

diskpart 
list disk
select disk 1 
attributes disk set readonly

offreadonlyfile.txt(用于解锁磁盘)

diskpart 
list disk
select disk 1 
attributes disk clear readonly

解决方法

您需要管理权限才能使用diskpart,如果您没有,则批处理脚本将以静默方式失败.要自动请求管理权限,可以将visual basic与批处理脚本结合使用.您还可以使用简单重定向为您自动创建临时文件,并在完成后删除它们

@echo off
setlocal enabledelayedexpansion
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%system32cacls.exe" "%SYSTEMROOT%system32configsystem"

REM --> If error flag set,we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%getadmin.vbs"
    echo UAC.ShellExecute "%~s0","","runas",1 >> "%temp%getadmin.vbs"

    "%temp%getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%getadmin.vbs" ( del "%temp%getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
    set /p "mode=Do you ant to set read or write: "
    :: call the first 4 letters of the string
    call :%mode:~0,4%
    pause
endlocal
goto eof

:read
    echo.diskpart>readonlyfile.txt
    echo.list disk>>readonlyfile.txt
    echo.select disk 1>>readonlyfile.txt
    echo.attributes disk set readonly>>readonlyfile.txt
    diskpart /s readonlyfile.txt>logfile.txt
    del readonlyfile.txt
exit /b 0

:writ
    echo.diskpart>offreadonlyfile.txt
    echo.list disk>>offreadonlyfile.txt
    echo.select disk 1>>offreadonlyfile.txt
    echo.attributes disk clear readonly>>offreadonlyfile.txt
    diskpart /s offreadonlyfile.txt
    del offreadonlyfile.txt
exit /b 0

UAC提示脚本的来源:https://sites.google.com/site/eneerge/scripts/batchgotadmin

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读