Im пытается написать пакетный файл, который будет искать, зависит от того, какая версия на окнах работает пользователем, папка SIP и удаляет ее.Невозможно разрешить переменную в пакетном файле
Уже у меня есть что-то вроде этого:
@echo off
setlocal enabledelayedexpansion
set count=0
cls
echo -------------------------------
choice /c yn /t 1 /d n /M "Automode will start in 5 sec..."
if "%ERRORLEVEL%" == "2" goto auto_no
if "%ERRORLEVEL%" == "1" goto auto_yes
::========== MANUAL ============================================================
::========== CHOICE ============================================================
:auto_no
cls
echo -------------------------------
echo Starting Manual Mode...
:: ver | findstr /i "5\.1\." > nul
:: IF %ERRORLEVEL% EQU 0 goto auto_no_winxp
ver | findstr /i "10\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto auto_no_winxp
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto auto_no_winvista
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto auto_no_win7
ver | findstr /i "6\.3\." > nul
IF %ERRORLEVEL% EQU 0 goto auto_no_win81
:: ver | findstr /i "10\.0\." > nul
:: IF %ERRORLEVEL% EQU 0 goto auto_no_Win10
:auto_no_winxp
echo WINDOWS XP Detected..
echo Switching to direct choose..
GOTO auto_no_direct
:auto_no_winvista
echo WINDOWS Vista Detected..
echo WINDOWS 10 Detected..
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Manufacturer" /C:"System Type" /C:"Windows Directory" /C:"System Directory" /C:"Domain" /C:"Logon Server"
GOTO end
:auto_no_win7
echo WINDOWS 7 Detected..
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Manufacturer" /C:"System Type" /C:"Windows Directory" /C:"System Directory" /C:"Domain" /C:"Logon Server"
GOTO end
:auto_no_win81
echo WINDOWS 8.1 Detected..
echo WINDOWS 10 Detected..
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Manufacturer" /C:"System Type" /C:"Windows Directory" /C:"System Directory" /C:"Domain" /C:"Logon Server"
GOTO end
:auto_no_win10
echo WINDOWS 10 Detected..
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Manufacturer" /C:"System Type" /C:"Windows Directory" /C:"System Directory" /C:"Domain" /C:"Logon Server"
GOTO end
:auto_no_direct
set source="%UserProfile%\AppData\Local\Microsoft\Communicator\"
IF EXIST "%UserProfile%\AppData\Local\Microsoft\Communicator\" (
echo Ms Lync Communicator directory found..
echo ^-^> MS Lync 2010
echo Profiles:
for %%x in (*.txt) do (
set /a count=count+1
set choice[!count!]=%%x
)
for /l %%x in (1,1,!count!) do (
echo %%x] !choice[%%x]!
)
set /p select=Type profile then press ENTER:
echo Pointer_procent: %select%
echo Pointer_wykrzyk: !select!
echo Selected: !choice[%select%]!
) ELSE (
echo There not found Communicator directory
echo ^-^> No MS Lync installed..
echo ^-^> Terminating..Press any key
)
GOTO end
GOTO end
::========== MANUAL ============================================================
::========== AUTO ==============================================================
::========== CHOICE ============================================================
:auto_yes
cls
echo Consipz - Lync Profile Reset
echo -------------------------------
echo Starting Auto Mode...
GOTO end
::========== AUTO ==============================================================
:end
pause > nul
и у меня есть проблемы в этом разделе:
for %%x in (*.txt) do (
set /a count=count+1
set choice[!count!]=%%x
)
for /l %%x in (1,1,!count!) do (
echo %%x] !choice[%%x]!
)
set /p select=Type profile then press ENTER:
echo Pointer_procent: %select%
echo Pointer_wykrzyk: !select!
echo Selected: !choice[%select%]!
Im пытается спросить пользователя для выбранного варианта. Но я не могу показать, что он выбирает. Например: Пользователь после просмотра вариантов, как:
1] choice1.txt
2] choice2.txt
и select..maybe 2 должны видеть:
Selected: choice2.txt
Я пытался почти все, и я знаю, что, вероятно, проблема с SETLOCAL ,
Пожалуйста, помогите;) PS: Пропустите код при попытке решить, какие Windows использует пользователь. я переключился метки целевой на цели Couse им с помощью W10
EDIT: Это было полезно :) я решил мою проблему с решением, как:
if *condition* (
goto yes
)else(
goto no
)
:yes
REM menu as files
:no
REM terminate
Сейчас я стою перед другой проблемы. Как я могу сделать, не будут файлы * .txt в виде опций, кроме папок. Имя этих папок начинается с «sip», например [email protected]?
Когда я пытаюсь этот код:
for %%x in ('dir /b /s /a:d "%UserProfile%\AppData\Local\Microsoft\Communicator\*"') do (
set /a count=count+1
set choice[!count!]=%%x
)
я вижу что-то вроде этого в результате:
Profiles:
1] 'dir
2] /b
3] /s
4] /a:d
Type profile then press ENTER:
Было полезно :) –