一个.bat文件,用于打开命令promt并将文本值输入promt

时间:2017-12-15 07:48:03

标签: batch-file

我以前来过这里并找到许多问题的答案,但我在这里空白,或者可能只是我有限的理解。无论如何,我制作了一个.bat文件,以管理员身份打开cmd

start ""/b 
C:\Users\"my username"\Desktop\cmdadmin.lnk

通过桌面上的快捷方式,但这就是我所拥有的,我想要的是一个.bat文件,以管理员身份打开cmd,进入此行

cd C:\Program Files\NVIDIA Corporation\NVSMI\

然后这一行

nvidia-smi -ac 3505,1392

这会将我的gpu及其内存时钟设置为所需的速度,我只是不希望每次机器关闭时手动执行此操作,因为这些值每次都会重置。我也希望能够编辑它,因为这些值可能会改变。如果你能够解释它是如何工作的,那将是一个加号,因为我希望能够做到(理论上无论如何)我应该更改卡的品牌和/或目录更改。

如果你有一种更优雅的方式来解决这个问题,我愿意接受建议。

环境窗口10

1 个答案:

答案 0 :(得分:0)

好吧,回答自己的问题可能是粗鲁的,但我能够找到这个代码的小宝石并且它起作用,不是我希望的学习经验,但所有这些都需要花费很长时间来学习和我有采矿要做。

@Compo,你是绝对正确的我不知道任务调度程序做了什么,直到你提到它。我会将此设置为在登录时自动运行,因此我再也不必考虑它了。

如果您不想用眼睛验证命令是否成功执行,请删除最后的暂停,这将是一个短暂的结束。我只是想看到它有效。

    REM  --> Check for permissions
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

    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"
        set params = %*:"=""
        echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

        "%temp%\getadmin.vbs"
        del "%temp%\getadmin.vbs"
        exit /B

    :gotAdmin
        pushd "%CD%"
        CD /D "%~dp0"
    cd C:\Program Files\NVIDIA Corporation\NVSMI\

    nvidia-smi -ac 3505,1392
    pause

我希望这对任何人都有用,包括那些希望简化nvidia gpu设置或在管理模式下启动命令提示符的矿工。

请注意,列出的时钟更改可能不适用于您的卡。要查找正确的设置,请使用此命令链。

cd C:\Program Files\NVIDIA Corporation\NVSMI\
nvidia-smi -q -d SUPPORTED_CLOCKS | more

这将生成最终代码行支持的时钟速度列表。 nvidia-smi -ac 3505,1392这是" MEMORY,GPU"我选择了最高的设置,你可以从那里超频自己的危险。