diff --git a/README.md b/README.md index 41d1342..3a0a1f4 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,9 @@ | Python | `submit.py` | 递交 `.sas` 代码至监管机构前的处理程序 | [↗️](https://github.com/smjc-org/py-submit/blob/main/README.md) | | Python | `multi_encoding_converter.py` | 编码格式转换 | [↗️](python/multi_encoding_converter/README.md) | | Batch | `create_virtual_driver.bat` | 创建虚拟磁盘 | [↗️](batch/create_virtual_driver/README.md) | +| Batch | `compdirtree.bat` | 比较本地和服务器文件差异 | [↗️](batch/robocopy_sync/READMD.md) | +| Batch | `sync2cloud.bat` | 同步至服务器 | [↗️](batch/robocopy_sync/READMD.md) | +| Batch | `sync2local.bat` | 同步至本地 | [↗️](batch/robocopy_sync/READMD.md) | ## pre-commit 安装 diff --git a/batch/robocopy_sync/READMD.md b/batch/robocopy_sync/READMD.md new file mode 100644 index 0000000..e69de29 diff --git a/batch/robocopy_sync/compdirtree.bat b/batch/robocopy_sync/compdirtree.bat new file mode 100644 index 0000000..a8543fd --- /dev/null +++ b/batch/robocopy_sync/compdirtree.bat @@ -0,0 +1,25 @@ +@echo off +color f0 + +setlocal EnableDelayedExpansion + +echo 比较本地与服务器文件的差异,请按任意键继续!!! +echo 运行后请查看log.txt文件!!! + +set local=%cd% +if "%local:~0,3%" == "X:\" ( + subst > %TEMP%\virtual_disk_list.txt + set /P VDLIST=<%TEMP%\virtual_disk_list.txt + echo !VDLIST! + set local=!VDLIST:~8!!cd:~2! +) +echo 本地路径:%local% +set cloud=%local:D:\OneDrive\统计部=Z:% +echo 服务器路径:%cloud% +rem pause + +robocopy "%local%" "%cloud%" /E /XO /COPY:DAT /DCOPY:DAT /TEE /W:3 /R:10 /XA:H /XF ~$* upload.log download.log compare.log /XD .ruff_cache .venv __pycache__ /UNILOG+:compare.log /UNICODE /L /PURGE + +explorer %local%\compare.log + +exit diff --git a/batch/robocopy_sync/opencloud.bat b/batch/robocopy_sync/opencloud.bat new file mode 100644 index 0000000..4c743a7 --- /dev/null +++ b/batch/robocopy_sync/opencloud.bat @@ -0,0 +1,15 @@ +@echo off +color f0 + +setlocal EnableDelayedExpansion + +set local=%cd% +if "%local:~0,3%" == "X:\" ( + subst > %TEMP%\virtual_disk_list.txt + set /P VDLIST=<%TEMP%\virtual_disk_list.txt + echo !VDLIST! + set local=!VDLIST:~8!!cd:~2! +) + +set cloud="%local:D:\OneDrive\统计部=Z:%" +explorer "%cloud%" diff --git a/batch/robocopy_sync/sync2cloud.bat b/batch/robocopy_sync/sync2cloud.bat new file mode 100644 index 0000000..e99ddbb --- /dev/null +++ b/batch/robocopy_sync/sync2cloud.bat @@ -0,0 +1,42 @@ +@echo off +color f0 + +setlocal EnableDelayedExpansion + +echo 仅在单人项目文件夹中运行!!! +echo 不要在多人协作项目文件夹中运行,因为可能会删除他人上传的新文件!!! +echo 按任意键继续,按CTRL+C中止...... +echo. + +set local=%cd% +if "%local:~0,3%" == "X:\" ( + subst > %TEMP%\virtual_disk_list.txt + set /P VDLIST=<%TEMP%\virtual_disk_list.txt + set local=!VDLIST:~8!!cd:~2! +) +echo 本地路径:%local% +set cloud=%local:D:\OneDrive\统计部=Z:% +echo 服务器路径:%cloud% +echo. + +set /p input=是否删除服务器中多余的文件?(Y/N) +if "%input%"=="Y" ( +goto delete_rep +)else if "%input%"=="y" ( +goto delete_rep +)else if "%input%"=="N" ( +goto not_delete_rep +)else if "%input%"=="n" ( +goto not_delete_rep +)else ( +echo 输入有误,将保留服务器中多余的文件! +goto not_delete_rep +) + +:delete_rep +robocopy "%local%" "%cloud%" /E /XO /COPY:DAT /DCOPY:DAT /W:3 /R:10 /TEE /XA:H /XF ~$* upload.log download.log compare.log /XD .ruff_cache .venv __pycache__ /UNILOG+:upload.log /UNICODE /PURGE +exit + +:not_delete_rep +robocopy "%local%" "%cloud%" /E /XO /COPY:DAT /DCOPY:DAT /W:3 /R:10 /TEE /XA:H /XF ~$* upload.log download.log compare.log /XD .ruff_cache .venv __pycache__ /UNILOG+:upload.log /UNICODE +exit diff --git a/batch/robocopy_sync/sync2local.bat b/batch/robocopy_sync/sync2local.bat new file mode 100644 index 0000000..a944887 --- /dev/null +++ b/batch/robocopy_sync/sync2local.bat @@ -0,0 +1,42 @@ +@echo off +color f0 + +setlocal EnableDelayedExpansion + +echo 同步至本地,默认不删除本地多余的文件,按任意键继续,按CTRL+C键中止 +echo. + +set local=%cd% +if "%local:~0,3%" == "X:\" ( + subst > %TEMP%\virtual_disk_list.txt + set /P VDLIST=<%TEMP%\virtual_disk_list.txt + echo !VDLIST! + set local=!VDLIST:~8!!cd:~2! +) +set cloud=%local:D:\OneDrive\统计部=Z:% +echo 本地路径:%local% +echo 服务器路径:%cloud% +echo. +echo. + +set /p input=是否删除本地磁盘中多余的文件?(Y/N) +if "%input%"=="Y" ( +goto delete_rep +)else if "%input%"=="y" ( +goto delete_rep +)else if "%input%"=="N" ( +goto not_delete_rep +)else if "%input%"=="n" ( +goto not_delete_rep +)else ( +echo 输入有误,将保留服务器中多余的文件! +goto not_delete_rep +) + +:delete_rep +robocopy "%cloud%" "%local%" /E /XO /COPY:DAT /DCOPY:DAT /W:3 /R:10 /TEE /XA:H /XF ~$* upload.log download.log compare.log /XD .ruff_cache .venv __pycache__ /UNILOG+:download.log /UNICODE /PURGE +exit + +:not_delete_rep +robocopy "%cloud%" "%local%" /E /XO /COPY:DAT /DCOPY:DAT /W:3 /R:10 /TEE /XA:H /XF ~$* upload.log download.log compare.log /XD .ruff_cache .venv __pycache__ /UNILOG+:download.log /UNICODE +exit