Windows常用批處理文件-復制、解壓


內容轉載自我的博客

1. 批量復制文件

創建文件copy_file.bat,內容如下,保存為ANSI編碼,否則中文會亂碼:

@echo off & color 0A
:: 指定起始文件夾:需要將此bat文件放在這些文件夾的同級
set DIR="%cd%"
echo 當前目錄為:%DIR%
set src_dir=C:\Users\zfb\Desktop\test\
set name1=%src_dir%a.txt
set name2=%src_dir%b.txt

for /f "delims=" %%i in ('dir /ad /b /s "%DIR%"') do (
    echo 正在復制文件%name1%到文件夾%%i
    copy %name1% %%i
    echo 正在復制文件%name2%到文件夾%%i
    copy %name2% %%i
    md %%i\dir_new
)
pause

或者直接下載藍奏雲文件,雙擊即可實現功能。具體功能解釋:目標文件夾的結構以及.bat文件放置如下:

|--test
|------copy_files.bat
|------file01
|------dir01
|----------dir01A
|----------dir01B
|------dir02
|----------dir01A
|----------dir01B
|----------dir01C
|------dir03
|----------file01

要將這兩個文件C:\Users\zfb\Desktop\test\a.txt、C:\Users\zfb\Desktop\test\b.txt復制到目標文件夾及其每個子目錄下,另外再新建一個目錄dir_new,最后效果如下:

|--test
|------copy_files.bat
|------file01
|------dir01
|----------a.txt
|----------b.txt
|----------dir_new
|----------dir01A
|--------------a.txt
|--------------b.txt
|--------------dir_new
|----------dir01B
|--------------a.txt
|--------------b.txt
|--------------dir_new
|------dir02
|----------a.txt
|----------b.txt
|----------dir_new
|----------dir01A
|--------------a.txt
|--------------b.txt
|--------------dir_new
|----------dir01B
|--------------a.txt
|--------------b.txt
|--------------dir_new
|----------dir01C
|--------------a.txt
|--------------b.txt
|--------------dir_new
|------dir03
|----------a.txt
|----------b.txt
|----------dir_new
|----------file01

2. 批量解壓文件

經常會遇到下載的原始數據是按照特定規律的許多壓縮包,它們可能分布在不同的文件夾下面,但是文件的擴展名是一致的。如果想要將每個壓縮包解壓到其所在的當前文件夾覆蓋已經解壓過的文件(方便程序異常退出后重新運行)、刪除解壓成功的壓縮包保留解壓失敗的壓縮包及其路徑等操作,則可以新建unzip_all_files.bat文件,內容如下:

@echo off
set WinRAR="C:\Program Files\WinRAR\WinRAR.exe"
set log_name="\log.txt"
set log=%cd%%log_name%
for /r . %%a in (*.rar *.zip *.Z *.gz) do ( 
    cd "%%~pa" 
    rem auto replace files that exists
    rem x : extract
    rem -o+ : cover mode
    rem -ilog : error msg to file
    rem -inul : do not display error window
    rem -iback : run in the background
    rem -mt : thread num
    %WinRAR% x -o+ -ilog%log% -inul -iback -mt12 "%%a"
    rem last command run successfully
    if %errorlevel% == 0 (
        rem delete compress file
        del "%%a"
    )
)

或者直接下載藍奏雲文件,雙擊即可實現功能

3. 批量重命名文件后綴

新建文件rename_suffix.bat,內容如下:

ren *.7z *.zip

雙擊此文件,即可將當前目錄下的所有.7z文件的擴展名修改為.zip

4. 解決Win10局域網共享問題(未測試)

創建文件fix_lan_share.bat,內容如下:

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
setlocal enabledelayedexpansion
echo.
ver | find "10." > NUL && goto win10
 
:error
mshta vbscript:msgbox(" 腳本只適用Win10系統",vbSystemModal+64,"警告")(window.close) 
exit
 
:win10
::改寫組策略
echo Windows Registry Editor Version 5.00 >%temp%\smb.reg
echo. >> %temp%\smb.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation] >> %temp%\smb.reg
echo @=""  >> %temp%\smb.reg
echo "AllowInsecureGuestAuth"=dword:00000001 >> %temp%\smb.reg
regedit /s %temp%\smb.reg
 
echo 添加smb訪問組件
dism /online /format:table /get-features
dism /online /enable-feature /featurename:SMB1Protocol
 
mshta vbscript:msgbox(" 設置完成。電腦重啟后生效!",vbSystemModal+64,"注意")(window.close) 
 
exit

或者直接下載藍奏雲文件,雙擊即可實現功能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM