Ветеран

Сообщения: 2735
Благодарности: 1699
|
Профиль
|
Отправить PM
| Цитировать
Цитата Iska:
Выкладывайте образец такого файла, упакованного в архив »
|
Если файл того вида, что как я понимаю
Код: 
fbr\fbr_linoleum = floor\floor_floor1
crete\crete_bordur = crete\crete_border2
crete\crete_stolb_a = crete\crete_stolb
crete\crete_dirty_gr = crete\crete_floor3
то вот вариант
Код: 
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "BoxOut=Z:\Box_Out"
Set "Spisok=Z:\Box_In\список переименования.txt"
FOR /F "usebackq tokens=1,2 delims==" %%i IN ("%Spisok%") DO If Not "%%j"=="" Call :ReMove "%%i" "%%j"
pause
GoTo :Eof
:ReMove
Call :Space "File1" %1
Call :Space "File2" %2
Set Action=Move "%BoxIn%\%File1%" "%BoxOut%\%File2%"
Call :MakeDir "%BoxOut%\%File2%"
If Not Exist "%BoxOut%\%File2%" (
%Action% >nul || (Echo %Action% &Echo:)
) Else (
Echo %Action% & Echo File Exist "%BoxOut%\%File2%" &Echo:
)
GoTo :Eof
:Space
Set "TMPbegin=%~2"
:Begin
Set "TMPname=%TMPbegin%"
If "%TMPbegin:~0,1%"==" " Set "TMPbegin=%TMPbegin:~1,999%"
If "%TMPbegin:~-1%"==" " Set "TMPbegin=%TMPbegin:~0,-1%"
If Not "%TMPbegin%"=="%TMPname%" GoTo :Begin
Set "%~1=%TMPname%"
GoTo :Eof
:MakeDir
If Not Exist "%~dp1" Md "%~dp1"
GoTo :Eof
Если файл того вида, что в вопросе, например
Код: 
Z:\Box_In | Z:\Box_Out\
старое имя: новое имя:
fbr\fbr_linoleum = floor\floor_floor1
crete\crete_bordur = crete\crete_border2
crete\crete_stolb_a = crete\crete_stolb
crete\crete_dirty_gr = crete\crete_floor3
и т.п.
то вот вариант
Код: 
@Echo Off
cls
Set "Spisok=Z:\Box_In\список переименования.txt"
FOR /F "usebackq tokens=1,2 delims=|" %%i IN ("%Spisok%") DO If Not "%%j"=="" (
Call :Space "BoxIn" "%%i"
Call :Space "BoxOut" "%%j"
GoTo :Continue
)
Echo OutBox not defined
Pause
GoTo :Eof
:Continue
FOR /F "usebackq tokens=1,2 delims==" %%i IN ("%Spisok%") DO If Not "%%j"=="" Call :ReMove "%%i" "%%j"
pause
GoTo :Eof
:ReMove
Call :Space "File1" %1
Call :Space "File2" %2
Set Action=Move "%BoxIn%\%File1%" "%BoxOut%\%File2%"
Call :MakeDir "%BoxOut%\%File2%"
If Not Exist "%BoxOut%\%File2%" (
%Action% >nul || (Echo %Action% &Echo:)
) Else (
Echo %Action% & Echo File Exist "%BoxOut%\%File2%" &Echo:
)
GoTo :Eof
:Space
Set "TMPbegin=%~2"
:Begin
Set "TMPname=%TMPbegin%"
If "%TMPbegin:~0,1%"==" " Set "TMPbegin=%TMPbegin:~1,999%"
If "%TMPbegin:~-1%"==" " Set "TMPbegin=%TMPbegin:~0,-1%"
If Not "%TMPbegin%"=="%TMPname%" GoTo :Begin
If "%TMPname:~-1%"=="\" Set "TMPname=%TMPname:~0,-1%"
Set "%~1=%TMPname%"
GoTo :Eof
:MakeDir
If Not Exist "%~dp1" Md "%~dp1"
GoTo :Eof
|
-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Последний раз редактировалось megaloman, 02-08-2017 в 13:55.
Причина: Добавил вариант решения
Отправлено: 15:09, 01-08-2017
| #5
|