[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
loban_ser, красотень! ag

[Цитировать]

    serg130270
  • 20635
  • Стаж: 5 лет
  • Сообщений: 24
  • Репутация:0

    [+] [-]
Здравствуйте ДОБРЫЕ ЛЮДИ,ФОРУМЧАНЕ!Помогите мне пожалуйста, можно ли изменить код в этом скрипте, чтобы WA-аддоны от abbodi1406 находились в папке с названием addon и распаковывались туда, в папку addon, а не в корень где лежит скрипт Помогите пожалуйста.
cd /d "%~dp0"
set /a _t=0
set /a _c=0
if exist "*.WA" for /f "delims=" %%# in ('dir /b /os *.WA') do call set /a _t+=1
if %_t% equ 0 exit /b
for /f "delims=" %%# in ('dir /b /os *.WA') do (set "addon=%%#"&set "dest=%%~n#"&call :prepare)
echo.
echo Done.
echo Press any key to exit.
pause >nul
exit /b
:prepare
if exist "%dest%" (
if exist "%dest%\Registry\NSudoC.exe" (exit /b) else (rd /s /q "%dest%")
)
set /a _c+=1
echo %_c%/%_t%: %addon%
echo.
bin\7zr x "%addon%" -o"%dest%" * -r >nul
if not exist "%dest%\Tasks.txt" rd /s /q "%dest%"&exit /b
md "%dest%\Registry\"
copy /y bin\NSudoC.exe "%dest%\Registry\" >nul
copy /y bin\Integrator.cmd "%dest%\" >nul
copy /y bin\Reg2Wim.cmd "%dest%\" >nul
pushd "%dest%\"
findstr /i ".dll" Tasks.txt >nul && for /f "tokens=1,2 delims=:" %%a in ('findstr /i ".dll" Tasks.txt') do (
if not exist "Files\%%b" md "Files\%%b"
move /y "%%a" "Files\%%b\" >nul
)
for /f "tokens=1,2 delims=:" %%a in ('findstr /i ":" Tasks.txt ^|findstr /i /v ".dll"') do (
if not exist "Files\%%b" md "Files\%%b"
move /y "%%a" "Files\%%b\" >nul
)
for /f "delims=" %%# in ('dir /b *.reg') do call Reg2Wim.cmd %%#
move /y *.reg Registry\ >nul
del /f /q Reg2Wim.cmd Tasks.txt
popd
exit /b


Последний раз редактировалось: serg130270 (2022-06-06 12:17), всего редактировалось 1 раз

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Есть у кого батник для фикса папки Temp в Windows 7-10?
Часто случается Temp перестает работать нормально и выходят всякие ошибки, от невозможность записать или запустить екзешники. Искал в сети, но там есть только обьяснения куда что изменять и права на темп папку предоставить, но готовый код так и не нашел.

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 4 месяца
  • Сообщений: 331
  • Репутация:7

    [+] [-]
95479Часто случается Temp перестает работать нормально и выходят всякие ошибки
Это случайно не после использования Primo RAM Disk произошло ?
А то Primo любит переносить переменные Temp на виртуальный сверхвысокоскоростной диск в RAM.
Из за этого и косяки начинают лезть. Я конечно понимаю, что сделано это из лучших побуждений - типа разместить временные файлы в высокопроизводительном пространстве -
но многие программы так не думают ag
Причём это специфика не тока Primo RAM Disk, но и других подобных программ.
Посему, я даже скрипты\проги PrimoRamDisk x64 by Nikzzzz и by Alexa переделал малость так, чтоб Temp оставался там,
где я его изначально разместил (у меня он всегда на C:\Temp)
А раньше приходилось после пользования виртуальным диском в памяти (в случае переноса прогой туды папок Temp)
применять для возврата темпов на исходное место простеший кмдешник следующего содержания:
:: Запускаем от Админа
>nul 2>&1 reg.exe query HKU\S-1-5-19|| (
mshta "vbscript:CreateObject("Shell.Application").ShellExecute("%~fs0", "", "", "runas", 1) & Close()"
goto :eof
)
REM Проверяем наличие/доступность папки C:\Temp, если папки нет - создаём, если не удаётся создать - выход
pushd "c:\Temp" && popd || (md "c:\Temp" ||exit)
REM Задаём переменные окружения TEMP и TMP текущего пользователя
setx TEMP c:\Temp
setx TMP c:\Temp
REM Задаём переменные окружения TEMP и TMP компьютера
setx TEMP c:\Temp /M
setx TMP c:\Temp /M
:: Pause
exit
Он то тебе наверно и нужен ...
aa ah

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
rekshd, ты точно заметил. Сейчас да, но прежде были и другие подобные случаи с Temp, не имеющие отношение с примо рам.
Насколько понимаю код переназничавает временные папки в C:\TEMP. Этот код во всех случаях с temp поможет, или не совсем? aa

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 4 месяца
  • Сообщений: 331
  • Репутация:7

    [+] [-]
95482 Этот код во всех случаях с temp поможет, или не совсем?
Я ж не Господь БОГ ...
Из абсолютно универсальных кодов знаю тока Format C:\
ap
ЗЫ Да, в коде, само собой, можно переназначать абсолютный адрес папки Temp на нужный тебе al

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
rekshd, спасибо, пригодиться. Должно помочь. ay az

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    rekshd
  • 19892
  • Стаж: 5 лет 4 месяца
  • Сообщений: 331
  • Репутация:7

    [+] [-]
95486Должно помочь
Да, код поможет тока в том случае, если программа, сотворившее это безобразие с переносом папок темп в другое место, к моменту запуска кода уже выключена\перестала воздействовать на систему.
af

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
rekshd, в принципе прога Primo Ramdisk от nikzzzz работает супер и на живую систему и на пешниках, только если на живую надо при выключения сделать возврат переменной %temp% из рамдиска на свое место, ну или через твоего батника в C:\Temp. Я даже попробую сделать репак такой и обновить версию.

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    JuraAD
  • 28398
  • Стаж: 2 года 9 месяцев
  • Сообщений: 72
  • Репутация:26

    [+] [-]
вообще системные переменный для сессий пользователей, процессов и системы устанавливаются в реестре и установкой "set", по истории поищите environment (так называемое окружение) есть для каждого процесса область в памяти, но исходные устанавливаются в реестре...
system:    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
users:    HKEY_CURRENT_USER\Environment
Работает так:
1. Системные установки наследуются для пользователей в системе;
2. Пользовательские перекрывают системные, наследуются для процессов (пользователь может переопределить/добавить для окружения пользователя);
3. в ходе запуска и работы процесса (bat и т.п. - могут сформировать свое окружение переопределить/добавить для окружения процесса "set")...
- как-то так... (подробности нужны? -))) или все понятно?...)
зы: TMP и TEMP переменные (историческое название еще с DOS) в выни начинают устанавливаться в системном окружении...
зызы: там, не там написал? или в https://usbtor.ru/viewtopic.php?t=1994&start=915 -)))

[Цитировать]

    hseg0
  • 30496
  • Стаж: 2 года 2 месяца
  • Сообщений: 3
  • Репутация:0

    [+] [-]
Здравствуйте. Помогите,пожалуйста, решить задачу. Хотелось бы переименовывать ПК каждый раз на рандомное имя не менее 12 символов, но не более 15: буквы заглавные и цифры, при помощи bat-файла, не редактируя сам bat-файл. В сети решение для этой задачи не нашел, разве только это (рандом для 5-ти символов):
@set @a=0/*
@for /f %%n in ('cscript /e:jscript %0') do @>nul wmic computersystem where "Name='%COMPUTERNAME%'" call Rename '%%~nn'
@exit
*/WSH.echo(WSH.CreateObject('Scripting.FileSystemObject').getTempName().slice(3))
Спасибо за помощь.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 2 месяца
  • Сообщений: 3609
  • Репутация:127

    [+] [-]
hseg0, https://usbtor.ru/viewtopic.php?p=96548#96548

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 4 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Подскажите как сделать проще?
Ситуация такая: Загружаю с флешку оригинальный boot.wim из Win11 22H2 например. Открываю командную строку. Сейчас нужно мне запустить Total Commander из корня флешки.
Я делаю так: пишу diskpart, потом команда list volume, чтоб увидеть букву присвоения флешки. Потом закрываю Exit и
пишу соответствующую "букву:" и TC - чтоб стартовать Tоtal Comander-а. Возможно ли это все сделать батником, или как то стартовать TC по проще напрямую? aa

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    JuraAD
  • 28398
  • Стаж: 2 года 9 месяцев
  • Сообщений: 72
  • Репутация:26

    [+] [-]
WMI должно работать... на обрезаных системах может послать...
wmic logicaldisk /?
wmic logicaldisk get /?
wmic logicaldisk get deviceid,volumename,description
Можно прочитать ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices:
но там нужно сопоставлять строчки типа:
"\\??\\Volume{542e8d6c-e794-11ec-bfc2-d050991566cb}"=hex:...
и:
"\\DosDevices\\D:"=hex:...

[Цитировать]

    cartmenezz
  • 1384
  • Стаж: 8 лет 7 месяцев
  • Сообщений: 526
  • Репутация:14

    [+] [-]
  • Откуда: Калининград
96620Возможно ли это все сделать батником
Приветствую. Как-то так:
@echo off
set n=\TC.exe
for %%A in (
C D E F G H I J K L M N O P Q R S T U V W X Y Z
) do dir "%%A:%n%" >nul 2>nul&& (
  start "" "%%A:%n%"
  exit
)
exit
TC.exe должен лежать в корне диска, в ином случае нужно поправить путь в строке "set n=\TC.exe" (например: set n=\папка1\папка2\TC.exe)

Страница 7 из 8


Показать сообщения:    

Текущее время: 26-Апр 01:45

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы