Windows cmd 命令实战案例学习
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

网络菜鸟愚沐