_D_V_S_

|
Posted: Mon Jul 27, 2009 12:22 Post subject: |
|
|
Batya wrote: | Не совсем понял, мы переименовываем 11 -> 1 в этом случае, или надо "ничего не делать"? Если не переименовываем, то когда создавать 11.flg?
Логику данного варианта распиши. Какие папки во что переименовываются при каких флагах?
Может объяснишь на реальном примере, зачем тебе это надо? |
Вот смотри Есть два каталога. Из них надо выбрать один и переименовать его. Например, есть каталоги 11 и 12 и один из них (по выбору) надо переименовать в 1.
1. Выбираем 11 и переименовываем в 1.
2. Во второй раз выбираем 12 и переименовываем в 1, но сначала естественно ранее переименованный 11-й, который щас под именем 1 переименовываем обратно - в 11.
3. А в третий раз (мы ж не помним, да нам и не надо запоминать) опять выбираем каталог 12. А он же у нас уже переименован (находится уже в том виде, который нам нужен)... Для этого и придумал я флаги
Флаг создается просто для страховки... По нему батник видит - что выбранный каталог уже переименован.
Суть задачи: выбрать один из каталогов и переименовать его в конкретное имя. И как необходимость - ранее переименованный каталог переименовать в первоначальное имя. Ну как мысль донести - словами не так просто
Вот соорудил батник все-в-одном, просто запусти его на исполнение - я его вроде отладил, работает как часы. Только одно "но" - он для возможности выбора пользует команду choice - в составе Windows XP ее нет, надо кинуть файлик choice.exe в windows\system32... ну думаю это ты и без меня знаешь
Code: | @echo off
cls
if not exist *.flg goto create
:start
cls
echo. 1. 11
echo. 2. 12
echo. 3. EXIT
choice /c:123 /t:1,60
if errorlevel 3 goto exit
if errorlevel 2 goto 12_1
if errorlevel 1 goto 11_1
:11_1
if exist 11.flg goto run
if exist 12.flg del *.flg
if exist 1 ren 1 12
ren 11 1
echo 11>11.flg
goto run
:12_1
if exist 12.flg goto run
if exist 11.flg del *.flg
if exist 1 ren 1 11
ren 12 1
echo 12>12.flg
goto run
:create
md 11
cd 11
echo 11>test11.file
cd ..
md 12
cd 12
echo 12>test12.file
cd ..
goto start
:run
echo *****Тут запускается некий RUN.exe******
:exit
echo *****EXIT******
pause
exit |
|
|