РЕДАКТИРОВАТЬ: Обновлен код с "Стефан" редактирования.Я проверил несколько фиктивных файлов, и все, кажется, работает.Спасибо, что нашли время, чтобы исправить это и работать.Теперь я могу сосредоточиться на продвижении проектов вместо того, чтобы заставить работать устаревшие инструменты разработки игр.Это было сделано для Source Engine SDK, чтобы помочь правильно загрузить модели игр с обратной совместимостью.
"sodacan.dx90.dx80.vtx" должно быть "sodacan.dx80.vtx".
"sodacan.dx90.sw.vtx "должен быть" sodacan.sw.vtx ".
ОРИГИНАЛЬНАЯ ПОЧТА: Предполагается, что этот пакетный файл восстанавливает отсутствующие файлы VTX путем копирования существующего файла VTX.Но для файлов vtx требуется специальный префикс, прикрепленный к ним перед расширением, например «sodacan.dx80.vtx» и «sodacan.sw.vtx».
Проблема заключается в том, что скрипт не работает так, как ондолжен.Сценарий запускается в папке, содержащей файлы VTX с разными именами.Предполагается, что скрипт создает копии одного файла vtx и присваивает им имена.В приведенном ниже примере показано, с чего вы начинаете, и конечный результат.
Вы начинаете с оригинала, такого как
sodacan.dx90.vtx (Original File)
Вы должны закончить с
sodacan.dx90.vtx (Original File)
sodacan.dx80.vtx (Copy 1)
sodacan.sw.vtx (Copy 2)
Но я на самом деле получаю это из кода.
awning001a.dx90.vtx (Original File)
awning001a.dx90.sw.vtx (Copy 1)
awning001a.dx90.dx80.vtx (Copy 2)
Эти файлы работают со связанным с ними файлом MDL, таким как (sodacan.mdl), но скрипт вообще не касается этих файлов.
Ниже приведен код в командном файле
@ECHO OFF
echo Initiating VTX re-construction...
set /a count=0
for /r %%F in (.) do (
Pushd %%F
for %%i in ("*.vtx") do (
for %%j in ("%%~ni") do (
echo Fixing "%%~ni.mdl".
if not exist "%%~nj.dx80%%~xi" copy "%%i" "%%~nj.dx80%%~xi" && set /a count+=1
if not exist "%%~nj.sw%%~xi" copy "%%i" "%%~nj.sw%%~xi" && set /a count+=1
)
)
popd
)
echo %count% reconstructed VTXes.
pause