Skip to content

Window 批处理常用命令

1049字约4分钟

2024-04-18

文件夹操作

@echo off
setlocal enabledelayedexpansion

rem 设置变量
set "folder=%~dp0"

rem 切换到指定目录
cd /d "%folder%"

rem 删除文件夹
rd /s /q "folder"

rem 创建文件夹
md "folder"

rem 删除文件
del /f "file.txt"

rem 复制文件
copy "source.txt" "destination.txt"

rem 重命名文件
ren "old_name.txt" "new_name.txt"

rem 移动文件
move "source.txt" "destination"

rem 获取文件夹大小
for /f "tokens=1-2 delims= " %%i in ('dir /a-d /s /c "folder"') do (
    set "size=%%i"
)

rem 输出文件夹大小
echo Folder size: %size% bytes

rem 获取文件夹中的文件数量
for /f "delims=" %%i in ('dir /b "folder"') do (
    set "count=%%i"
)

rem 输出文件数量
echo Number of files: %count%

rem 获取文件夹中的文件名
for /f "delims=" %%i in ('dir /b "folder"') do (
        echo %%i
)

rem 获取文件夹中的文件名和大小
for /f "delims=" %%i in ('dir /b "folder"') do (
    for /f "tokens=1-2 delims= " %%j in ('dir /a-d /s /c "%%i"') do (
        echo %%i - %%j bytes
    )
    )

rem 获取文件夹中的文件名和最后修改时间
for /f "delims=" %%i in ('dir /b "folder"') do (
    for /f "tokens=1-2 delims= " %%j in ('dir /a-d /t "%%i"') do (
        echo %%i - %%j
    )
)

rem 获取文件夹中的文件名和最后修改时间(格式化)
for /f "delims=" %%i in ('dir /b "folder"') do (
    for /f "tokens=1-2 delims= " %%j in ('dir /a-d /t "%%i"') do (
        echo %%i - %%j
    )
)

rem 获取文件夹中的文件名和最后修改时间(格式化,带文件大小)
for /f "delims=" %%i in ('dir /b "folder"') do (
    for /f "tokens=1-2 delims= " %%j in ('dir /a-d /t "%%i"') do (
        for /f "tokens=1-2 delims= " %%k in ('dir /a-d /s /c "%%i"') do (
            echo %%i - %%j - %%k bytes
        )
    )
)

文件操作

rem 设置变量
set "file=%~dp0"

rem 切换到指定目录
cd /d "%file%"

rem 删除文件
del "file.txt"

rem 复制文件
copy "source.txt" "destination.txt"

rem 重命名文件
ren "old_name.txt" "new_name.txt"

rem 移动文件
move "source.txt" "destination"

rem 获取文件大小
for /f "tokens=1-2 delims= " %%i in ('dir /a-d /s /c "file.txt"') do (
    set "size=%%i"
)

rem 输出文件大小
echo File size: %size% bytes

rem 获取文件最后修改时间
for /f "tokens=1-2 delims= " %%i in ('dir /a-d /t "file.txt"') do (
    set "last_modified=%%i"
)

rem 输出文件最后修改时间
echo Last modified: %last_modified%

rem 获取文件内容
type "file.txt"

rem 获取文件内容(行号)
for /f "delims=" %%i in ('type "file.txt"') do (
    echo %%i: %%i   
)

rem 获取文件内容(行号和内容)
for /f "delims=" %%i in ('type "file.txt"') do (
    echo %%i: %%i   
)

rem 获取文件内容(行号、内容、字节数)
for /f "delims=" %%i in ('type "file.txt"') do (
    echo %%i: %%i - %%k bytes   
)

rem 获取文件内容(行号、内容、字节数、文件大小)
for /f "delims=" %%i in ('type "file.txt"') do (
    for /f "tokens=1-2 delims= " %%j in ('dir /a-d /s /c "file.txt"') do (
        echo %%i: %%i - %%j bytes - %%k bytes   
    )
)

系统操作

rem 设置变量
set "file=%~dp0"

rem 切换到指定目录
cd /d "%file%"

rem 获取系统时间
for /f "tokens=1-2 delims= " %%i in ('echo %time%') do (
    set "time=%%i"
)

rem 输出系统时间
echo System time: %time%

rem 获取系统日期
`
for /f "tokens=1-2 delims= " %%i in ('echo %date%') do (
    set "date=%%i"
)

rem 输出系统日期
echo System date: %date%

rem 获取系统用户名
for /f "tokens=1-2 delims= " %%i in ('echo %username%') do (
    set "username=%%i"
)

rem 输出系统用户名
echo System username: %username%

rem 获取系统用户名
for /f "tokens=1-2 delims= " %%i in ('echo %username%') do (
    set "username=%%i"
)

rem 输出系统用户名
echo System username: %username%

rem 获取系统用户名
for /f "tokens=1-2 delims= " %%i in ('echo %username%') do (
    set "username=%%i"
)

rem 输出系统用户名
echo System username: %username%

rem 获取系统用户名
for /f "tokens=1-2 delims= " %%i in ('echo %username%') do (
    set "username=%%i"
)

rem 输出系统用户名
echo System username: %username%

rem 获取系统用户名
for /f "tokens=1-2 delims= " %%i in ('echo %username%') do (
    set "username=%%i"
)

rem 输出系统用户名
echo System username: %username%

rem 获取系统用户名
for /f "tokens=1-2 delims= " %%i in ('echo %username%') do (
    set "username=%%i"
)

案例合集

远程同步文件,部署tomcat

@echo off
rem amol-main
SET module=%*
SET CWRSYNCHOME=D:\Software\cwrsync_6.2.12_x64
SET RSYNC_SSH="%CWRSYNCHOME%\bin\ssh.exe -p 22 "
SET LOCAL_HOME=/cygdrive/D/DevSpace/accurad/amol-dev/out/artifacts

rem Server config info
SET SERVER=root@hao.yizhen.cn
SET TOMCAT_HOME=/root/devSpace/server/tomcat-remote-mysql-8.5.99


echo start rsync module [%module%]....

for %%i in (%module%) do (
%CWRSYNCHOME%\bin\rsync.exe -zvar -e %RSYNC_SSH% --exclude=.svn --exclude=.cvs --exclude=.idea --exclude=.DS_Store --exclude=.git --exclude=.hg --exclude=*.hprof --exclude=*.pyc %LOCAL_HOME%/%%i/ %SERVER%:%TOMCAT_HOME%/webapps/%%i
echo rsync %%i finish!
)

echo ---------------rsync finish!-------------------

ssh -t %SERVER% "sh %TOMCAT_HOME%/restart.sh"

echo ------------restart server finish!-------------

陕ICP备2021014644号-1