Это моя функция в партии CMD.Цель состоит в том, чтобы классифицировать 9 папок по разным именам, например, если имя содержит 109, тогда файл будет размещен в папке 109. Однако здесь я могу написать только 9 для циклов
(имя папки - номер телефона101-109 и формат файла - date-phone1-phone2 - идентификатор записи, некоторые из идентификатора записи будут дублироваться, потому что настройка строки поиска)
for /r %%i in (*) do (
If %%i contains '-101-' (move %%i 101)
else if %%i contains '-102-' (move %%i 102))
Но это не сработает.Я также пытаюсь, если %% i in ( -101- ), но тоже не работает.Есть ли более простой способ написать forloop для сортировки, как она идет вместо того, чтобы запрашивать цикл 9 раз.
setlocal
set year=%date:~10,4%
set month=%date:~4,2%
set day=%date:~7,2%
cd C:\Users\SQ\Desktop\MWRecord
IF EXIST %year% (cd %year%) ELSE (mkdir %year% & cd %year%)
IF EXIST %year%%month% (cd %year%%month%) ELSE (mkdir %year%%month% & cd %year%%month%)
IF EXIST %year%%month%%day% (cd %year%%month%%day%) ELSE (cd ..\.. & move %year%%month%%day% %year%\%year%%month% & cd %year%\%year%%month%\%year%%month%%day%)
for /r %%i in (*-101-*) do ( IF EXIST 101 (move %%i 101) ELSE (mkdir 101 & move %%i 101))
for /r %%i in (*-102-*) do ( IF EXIST 102 (move %%i 102) ELSE (mkdir 102 & move %%i 102))
for /r %%i in (*-103-*) do ( IF EXIST 103 (move %%i 103) ELSE (mkdir 103 & move %%i 103))
for /r %%i in (*-104-*) do ( IF EXIST 104 (move %%i 104) ELSE (mkdir 104 & move %%i 104))
for /r %%i in (*-105-*) do ( IF EXIST 105 (move %%i 105) ELSE (mkdir 105 & move %%i 105))
for /r %%i in (*-106-*) do ( IF EXIST 106 (move %%i 106) ELSE (mkdir 106 & move %%i 106))
for /r %%i in (*-107-*) do ( IF EXIST 107 (move %%i 107) ELSE (mkdir 107 & move %%i 107))
for /r %%i in (*-108-*) do ( IF EXIST 108 (move %%i 108) ELSE (mkdir 108 & move %%i 108))
for /r %%i in (*-109-*) do ( IF EXIST 109 (move %%i 109) ELSE (mkdir 109 & move %%i 109))
endlocal