欢迎光临散文网 会员登陆 & 注册

Windows cmd 命令实战案例学习

2023-09-08 14:36 作者:想想看小说  | 我要投稿

Windows cmd 命令实战案例

给小白的建议,以下代码看多看看会对你有所备注,选择自己需要的部分,用到自己的代码里去,代码可以有无数种组合方式,有无数种可能,靠自己的想象,创造出属于自己的程序,以下代码部分是借鉴被人的代码,取我所需结合自己的想法写的,在此感谢各位大佬的帮助

源码 :https://lanpeng.lanzoum.com/b03ewkyxc 密码:eal2

软件:https://lanpeng.lanzoum.com/b03ewmf0h 密码:dv95

源码我已经打包,还有些太长没有放进来,我上传网盘各自取用,如果遇到bug可以在评论区或私信我,我再进行修改,可以自己尝试学习一下


::实现变量值在不同情况下实现不同赋值

@echo off 

dir /ad /b %~nx1 >nul 2>nul&& set a=%~nx1||set a=%~n1

echo %a%

pause


::将拖入的文件路径添加到环境变量

@echo off

title 网络菜鸟愚沐

dir /ad/b %~1 >nul 2>nul && (goto yes) || (goto no)


::方法一

:yes

if defined Tianjia (

    rem 有变量值时,附加到现有的环境变量中

    setx Tianjia "%Tianjia%;%~1"

) else (

    rem 无变量值时,创建新的变量, 并将新变量添加到Path里

    setx Tianjia "%~1" &&  setx Path "%path%;%%Tianjia%%"

)

 exit

 

:no

if defined Tianjia (

    rem 有变量值时,附加到现有的环境变量中

    setx Tianjia "%Tianjia%;%cd%"

) else (

    rem 无变量值时,创建新的变量, 并将新变量添加到Path里

    setx Tianjia "%cd%" &&  setx Path "%path%;%%Tianjia%%"

)

exit


@echo off

title 网络菜鸟愚沐

echo %~dp1>>地址文件.txt

type %~1 | find /i "exe" | find /i "\" >>地址文件.txt

echo %~1 >>地址文件.txt

echo= >>地址文件.txt

pause


@echo off

title 网络菜鸟愚沐

::for读取.lnk文件,type打印快捷方式信息,find进行搜索

for /r %%f in (*.lnk) do (echo %%f>>地址文件.txt && type %%f | find /i "exe" | find /i "\" >> 地址文件.txt  && echo= >>地址文件.txt) 2>nul

pause


::复制拖入地址

@echo off

title 网络菜鸟愚沐

if "%~1" == "" (echo 复制失败没有可复制对象 && ping -n 3 127.1>nul&&exit

echo "%~1" | clip

pause


@echo off

title 网络菜鸟愚沐

setlocal EnableDelayedExpansion


::获取当前目录所有文件夹,并依次改名为 “沐1-沐*”

for /f "tokens=*" %%i in ('dir /ad/b') do (set /a a+=1 &&ren "%%i" "沐!a!" )

pause

@echo off

title 网络菜鸟愚沐


::注册表检查值

set "reg1=HKEY_CLASSES_ROOT\Directory\Background\shell\Item1 /v "MUIVerb" /t REG_SZ"

set "reg2=HKCR\Directory\Background\shell\Item1 /v "Position" /t REG_SZ"

set "reg3=HKCR\Directory\Background\shell\Item1\command /ve /t REG_SZ"



::注册表添加值

set "new1=HKEY_CLASSES_ROOT\Directory\Background\shell\Item1 /v "MUIVerb" /t REG_SZ /d "关机" /f"

set "new2=HKCR\Directory\Background\shell\Item1 /v "Position" /t REG_SZ /d "bottom" /f"

set "new4=HKCR\Directory\Background\shell\Item1" /v "Icon" /t REG_SZ /d "C:\Windows\%~nx0,0" /f"

set "new3=HKCR\Directory\Background\shell\Item1\command /ve /t REG_SZ /d "C:\Windows\%~nx0" /f"



::判断注册表值是否正常

(reg query %reg1% ||goto new

if errorlevel == 0 (

    reg query %reg2% ||goto new

    if errorlevel == 0 (

        reg query %reg3%||goto new

        if errorlevel == 0 (goto guanji

        ) 

    ) 

))>nul 2>nul


:new

::添加注册表值

reg add %new1% 2>nul||goto admin

reg add %new2%

reg add %new4%

reg add %new3%



::在写这个命令是遇到了一个问题,当时这段语句没有添加 ”exit“命令,但写在这段判断语句后面的命令都没有正常执行就直接退出了,最开始这段代码写在最上方,有知道情况的大神联系我,帮我解惑,谢谢,B站up网络菜鸟愚沐


::判断目录下是否存在关机程序

if not exist "C:\Windows\%~nx0" (move /y "%~0" "C:\Windows\"&&exit)


:guanji

::直接关机

shutdown /f /p

exit


:admin

::获取管理员权限

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit


::批量打印文件名

@echo off

title 网络菜鸟愚沐

setlocal enabledelayedexpansion


::读取目录下所以文件夹

for /d %%a in (*) do (

set /a aa+=1

set cc=0

::获取文件夹下exe文件

for /f "delims=" %%b in ('dir/a-d/b %%a\*.exe') do (

set /a cc+=1

echo !aa!!cc! %%b

        )

)

pause


::读取目录下程序数量

@echo off

::读取安装程序目录下有多少exe程序

for /f %%i in ('dir/b/a-d/s C:\"Program Files"\*.exe') do (set /a fn+=1)

if %fn% lss 5 (echo 小于5个文件)

if %fn% geq 5 (echo  大于或等于5个)

echo 共计 %fn%

pause


::提取指定行

@echo off

::读取12.txt文件打印添加序列号

findstr /n .* 12.txt>>122.txt

set /p m=请输入要定位的行:

::读取指定行信息

findstr   /b "%m%" 122.txt

pause




::获取管理员权限

@echo off

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

::保持当前目录下运行

cd /d "%~dp0"



::此方法是我向吾爱大佬Wikin请教而来

::为当前目录下exe添加快捷方式到桌面

@echo off

setlocal enabledelayedexpansion

 

rem 设置桌面快捷方式目标路径

set "shortcut_target_path=%USERPROFILE%\Desktop"

 

rem 遍历当前目录下的文件夹

for /d %%F in (*) do (

    rem 检查文件夹内是否有且只有一个exe文件

    set "exe_count=0"

    for %%E in ("%%F\*.exe") do (

        set /a "exe_count+=1"

        set "exe_path=%%~fE"

    )

 

    rem 如果只有一个exe文件,则创建快捷方式

    if !exe_count! equ 1 (

        set "shortcut_name=%%F.lnk"

        set "shortcut_path=!shortcut_target_path!\!shortcut_name!"

        echo Creating shortcut: !shortcut_path!

        rem 创建快捷方式

        powershell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('!shortcut_path!'); $Shortcut.TargetPath = '!exe_path!'; $Shortcut.Save()"

    ) else (

        echo Skipping folder "%%F": No exe file or multiple exe files found.

    )

)

pause


相关教程

Windows cmd 之特殊符号及变量 - 哔哩哔哩 (bilibili.com)

Windows cmd 之快捷运行程序名 - 哔哩哔哩 (bilibili.com)

Windows cmd 命令教程大全https://www.bilibili.com/read/cv26003229

网络菜鸟愚沐


Windows cmd 命令实战案例学习的评论 (共 条)

分享到微博请遵守国家法律