
[已解決]批處理命令for列舉的項目如何去除重復內容最后由 crist 于 -8-30 14:43代碼如下
由于備份列表中一個用戶存在多個備份文件,因此代碼運行后同一個用戶名會被列舉多次,請問如何讓同一個用戶名只列舉一次呢?問題已經解決,不過還有很多東西需要慢慢消化,感謝apang大俠的代碼以及他耐心的講解nclick="copycode($('code0'));">復制代碼
- @echo off
- pushd ~dp0
- title 還原Skype聊天記錄
- if not exist %ProgramFiles%WinRARRar.exe goto error0
- set winrar=%ProgramFiles%WinRARRar.exe
- if exist D:PersonalMy documentsSkypebackup (
- set source=D:PersonalMy documentsSkypebackup
- ) else (
- set source=backup
- )
- :set_id
- cls
- echo 提示:1.任何時候若需中斷操作都可直接關閉本程序窗口
- echo 2.備份前請先退出 Skype 程序
- echo 3.支持空格路徑,不需要雙引號
- echo.
- set p=%userprofile%Application Dataskype
- if exist %p% (
- echo 目標路徑下檢測到以下 Skype 用戶名:
- echo.
- for /f delims= %%a in ('dir /ad /b /s %p%chatsync') do (
- if exist %%~dpamain.db if exist %%~dpaconfig.xml (
- for %%b in (%%a..) do echo %%~nxb
- )
- )
- ) else (
- echo 未檢測到任何 Skype 用戶記錄
- echo 備份列表中存在以下用戶名:
- if exist %source%*_*.zip for /f delims=_ tokens=1 %%i in ('dir/a/b/o %source%*_*.zip') do echo %%i
- )

