Windows cmd 命令實戰(zhàn)案例學(xué)習(xí)
Windows cmd 命令實戰(zhàn)案例
給小白的建議,以下代碼看多看看會對你有所備注,選擇自己需要的部分,用到自己的代碼里去,代碼可以有無數(shù)種組合方式,有無數(shù)種可能,靠自己的想象,創(chuàng)造出屬于自己的程序,以下代碼部分是借鑒被人的代碼,取我所需結(jié)合自己的想法寫的,在此感謝各位大佬的幫助
源碼 :https://lanpeng.lanzoum.com/b03ewkyxc 密碼:eal2
軟件:https://lanpeng.lanzoum.com/b03ewmf0h 密碼:dv95
源碼我已經(jīng)打包,還有些太長沒有放進來,我上傳網(wǎng)盤各自取用,如果遇到bug可以在評論區(qū)或私信我,我再進行修改,可以自己嘗試學(xué)習(xí)一下
::實現(xiàn)變量值在不同情況下實現(xiàn)不同賦值
@echo off?
dir /ad /b %~nx1 >nul 2>nul&& set a=%~nx1||set a=%~n1
echo %a%
pause

::將拖入的文件路徑添加到環(huán)境變量
@echo off
title 網(wǎng)絡(luò)菜鳥愚沐
dir /ad/b %~1 >nul 2>nul && (goto yes) || (goto no)
::方法一
:yes
if defined Tianjia (
? ? rem?有變量值時,附加到現(xiàn)有的環(huán)境變量中
? ? setx Tianjia "%Tianjia%;%~1"
) else (
? ? rem 無變量值時,創(chuàng)建新的變量, 并將新變量添加到Path里
? ? setx Tianjia "%~1" &&? setx Path "%path%;%%Tianjia%%"
)
?exit
?
:no
if defined Tianjia (
? ? rem?有變量值時,附加到現(xiàn)有的環(huán)境變量中
? ? setx Tianjia "%Tianjia%;%cd%"
) else (
? ? rem 無變量值時,創(chuàng)建新的變量, 并將新變量添加到Path里
? ? setx Tianjia "%cd%" &&? setx Path "%path%;%%Tianjia%%"
)
exit

@echo off
title 網(wǎng)絡(luò)菜鳥愚沐
echo %~dp1>>地址文件.txt
type %~1 | find /i "exe" | find /i "\" >>地址文件.txt
echo %~1 >>地址文件.txt
echo= >>地址文件.txt
pause

@echo off
title 網(wǎng)絡(luò)菜鳥愚沐
::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

::復(fù)制拖入地址
@echo off
title 網(wǎng)絡(luò)菜鳥愚沐
if "%~1" == "" (echo 復(fù)制失敗沒有可復(fù)制對象 && ping -n 3 127.1>nul&&exit)?
echo "%~1" | clip
pause

@echo off
title 網(wǎng)絡(luò)菜鳥愚沐
setlocal EnableDelayedExpansion

::獲取當(dāng)前目錄所有文件夾,并依次改名為 “沐1-沐*”
for /f "tokens=*" %%i in ('dir /ad/b') do (set /a a+=1 &&ren "%%i" "沐!a!" )
pause

@echo off
title 網(wǎng)絡(luò)菜鳥愚沐
::注冊表檢查值
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 "關(guān)機" /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%
::在寫這個命令是遇到了一個問題,當(dāng)時這段語句沒有添加 ”exit“命令,但寫在這段判斷語句后面的命令都沒有正常執(zhí)行就直接退出了,最開始這段代碼寫在最上方,有知道情況的大神聯(lián)系我,幫我解惑,謝謝,B站up網(wǎng)絡(luò)菜鳥愚沐
::判斷目錄下是否存在關(guān)機程序
if not exist "C:\Windows\%~nx0" (move /y "%~0" "C:\Windows\"&&exit)
:guanji
::直接關(guān)機
shutdown /f /p
exit
:admin
::獲取管理員權(quán)限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

::批量打印文件名
@echo off
title 網(wǎng)絡(luò)菜鳥愚沐
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

::讀取目錄下程序數(shù)量
@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

::獲取管理員權(quán)限
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
::保持當(dāng)前目錄下運行
cd /d "%~dp0"

::此方法是我向吾愛大佬Wikin請教而來
::為當(dāng)前目錄下exe添加快捷方式到桌面
@echo off
setlocal enabledelayedexpansion
?
rem 設(shè)置桌面快捷方式目標(biāo)路徑
set "shortcut_target_path=%USERPROFILE%\Desktop"
?
rem 遍歷當(dāng)前目錄下的文件夾
for /d %%F in (*) do (
? ? rem 檢查文件夾內(nèi)是否有且只有一個exe文件
? ? set "exe_count=0"
? ? for %%E in ("%%F\*.exe") do (
? ? ? ? set /a "exe_count+=1"
? ? ? ? set "exe_path=%%~fE"
? ? )
?
? ? rem 如果只有一個exe文件,則創(chuàng)建快捷方式
? ? if !exe_count! equ 1 (
? ? ? ? set "shortcut_name=%%F.lnk"
? ? ? ? set "shortcut_path=!shortcut_target_path!\!shortcut_name!"
? ? ? ? echo Creating shortcut: !shortcut_path!
? ? ? ? rem 創(chuàng)建快捷方式
? ? ? ? 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

相關(guān)教程
Windows cmd 之特殊符號及變量 - 嗶哩嗶哩 (bilibili.com)
Windows cmd 之快捷運行程序名 - 嗶哩嗶哩 (bilibili.com)
Windows cmd 命令教程大全:https://www.bilibili.com/read/cv26003229

網(wǎng)絡(luò)菜鳥愚沐