KoRn0509
26-10-2020, 14:08
Приветствую. Нужна ваша помощь. Есть набор папок такого вида
E:\123\123\405734043
E:\123\123\405794502
E:\123\123\405804760
В каждой папке лежит файл
Small parking lot.crp
Relax Park 4x4.crp
Your on road park 1x1.crp
В итоге получается такой вид
E:\123\123\405734043\Small parking lot.crp
E:\123\123\405794502\Relax Park 4x4.crp
E:\123\123\405804760\Your on road park 1x1.crp
Есть вот такой скрипт
:start
rem Start folder
set folder1="E:\123\123\405734043\"
for /d %%Z in ("%folder1:~1,-1%\*.*") do (
if NOT %%~nZ==Park (
rem firstfolder
for /d %%i in ("%%Z\*.*") do (
rem mode directory %%i
for %%f in ("%%i\*.crp") do (
call :shortname "%%~ni" "%%~i" "%%~Z" "%%~nf"
echo. ))))
exit
:shortname
set shrt="%~1"
set upd=%shrt:~1,6%
if %upd%==Update (goto :end)
echo "%~2" compare with
echo "%~3\%shrt:~1,9% %~4"
set old="%~2"
set new="%~3\%shrt:~1,9% %~4"
if NOT %new%==%old% (if NOT "%~4"=="NewAsset" (move "%~2" "%~3\%shrt:~1,9% %~4")) ELSE echo name exists
:end
echo.
Который берет название файла из папки и приписывает его к названию папки.
В итоге получается такой вид.
E:\123\123\405734043 Small parking lot
E:\123\123\405794502 Relax Park 4x4
E:\123\123\405804760 Your on road park 1x1
Дело в том что папки имеют 9 символов, но беда в том что, если папка будет иметь 10 символов к примеру
E:\123\123\2240880754\İSTANBULL.crp
То данный скрипт удалит последнюю цифру и конечный вид будет
E:\123\123\224088075 İSTANBULL
Автор данного скрипта не выходит на связь. Можете помочь сделать так что бы и 9 и 10 цифр работали адекватно и не удалялась 1 цифра в случае когда их 10
Спасибо.
E:\123\123\405734043
E:\123\123\405794502
E:\123\123\405804760
В каждой папке лежит файл
Small parking lot.crp
Relax Park 4x4.crp
Your on road park 1x1.crp
В итоге получается такой вид
E:\123\123\405734043\Small parking lot.crp
E:\123\123\405794502\Relax Park 4x4.crp
E:\123\123\405804760\Your on road park 1x1.crp
Есть вот такой скрипт
:start
rem Start folder
set folder1="E:\123\123\405734043\"
for /d %%Z in ("%folder1:~1,-1%\*.*") do (
if NOT %%~nZ==Park (
rem firstfolder
for /d %%i in ("%%Z\*.*") do (
rem mode directory %%i
for %%f in ("%%i\*.crp") do (
call :shortname "%%~ni" "%%~i" "%%~Z" "%%~nf"
echo. ))))
exit
:shortname
set shrt="%~1"
set upd=%shrt:~1,6%
if %upd%==Update (goto :end)
echo "%~2" compare with
echo "%~3\%shrt:~1,9% %~4"
set old="%~2"
set new="%~3\%shrt:~1,9% %~4"
if NOT %new%==%old% (if NOT "%~4"=="NewAsset" (move "%~2" "%~3\%shrt:~1,9% %~4")) ELSE echo name exists
:end
echo.
Который берет название файла из папки и приписывает его к названию папки.
В итоге получается такой вид.
E:\123\123\405734043 Small parking lot
E:\123\123\405794502 Relax Park 4x4
E:\123\123\405804760 Your on road park 1x1
Дело в том что папки имеют 9 символов, но беда в том что, если папка будет иметь 10 символов к примеру
E:\123\123\2240880754\İSTANBULL.crp
То данный скрипт удалит последнюю цифру и конечный вид будет
E:\123\123\224088075 İSTANBULL
Автор данного скрипта не выходит на связь. Можете помочь сделать так что бы и 9 и 10 цифр работали адекватно и не удалялась 1 цифра в случае когда их 10
Спасибо.