fix: save BAT_DIR before shift (shift changes %0 in cmd.exe)
This commit is contained in:
1 parent
f8ced759f5
commit
33c33d08f0
1 file changed
+10
-32
+10
-32
@@ -6,10 +6,9 @@ echo ========================================
|
||||
echo Raskidator-3000 — сортировка фотографий
|
||||
echo ========================================
|
||||
echo.
|
||||
echo [DEBUG] %%0 = %0
|
||||
echo [DEBUG] %%~f0 = %~f0
|
||||
echo [DEBUG] %%~dp0 = %~dp0
|
||||
echo.
|
||||
|
||||
:: Сохраняем путь к папке с батником ДО shift (shift меняет %0)
|
||||
set "BAT_DIR=%~dp0"
|
||||
|
||||
:: Определяем режим (--dry-run или обычный)
|
||||
set "DRY="
|
||||
@@ -30,28 +29,13 @@ if not "%DRY%"=="" echo Режим: ПРОБНЫЙ (dry-run)
|
||||
echo.
|
||||
|
||||
:: Проверяем, существует ли скрипт
|
||||
set "SCRIPT=%~dp0organize.py"
|
||||
echo [DEBUG1] SCRIPT = "%SCRIPT%"
|
||||
dir "%SCRIPT%" >nul 2>&1 && echo [DEBUG1] FILE EXISTS || echo [DEBUG1] FILE NOT FOUND
|
||||
if exist "%SCRIPT%" goto :found
|
||||
|
||||
:: Fallback: если %~dp0 вернула неверный путь (контекстное меню),
|
||||
:: ищем organize.py в той же папке, где лежит сам батник
|
||||
set "SCRIPT=%~f0"
|
||||
echo [DEBUG2] SCRIPT = "%SCRIPT%"
|
||||
call :getdir "%SCRIPT%" SCRIPTDIR
|
||||
echo [DEBUG2] SCRIPTDIR = "%SCRIPTDIR%"
|
||||
set "SCRIPT=%SCRIPTDIR%organize.py"
|
||||
echo [DEBUG2] NEW SCRIPT = "%SCRIPT%"
|
||||
dir "%SCRIPT%" >nul 2>&1 && echo [DEBUG2] FILE EXISTS || echo [DEBUG2] FILE NOT FOUND
|
||||
if exist "%SCRIPT%" goto :found
|
||||
|
||||
:: Совсем не нашли
|
||||
echo [ОШИБКА] Не найден organize.py рядом с батником.
|
||||
echo Ожидаемый путь: %SCRIPT%
|
||||
goto :end
|
||||
|
||||
:found
|
||||
if exist "%BAT_DIR%organize.py" (
|
||||
set "SCRIPT=%BAT_DIR%organize.py"
|
||||
) else (
|
||||
echo [ОШИБКА] Не найден organize.py рядом с батником.
|
||||
echo Ожидаемый путь: %BAT_DIR%organize.py
|
||||
goto :end
|
||||
)
|
||||
|
||||
:: Пробуем python (наиболее распространён)
|
||||
python "%SCRIPT%" %DRY% "%TARGET%"
|
||||
@@ -73,9 +57,3 @@ echo.
|
||||
echo ========================================
|
||||
echo Нажми любую клавишу для выхода...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
:: Извлекает директорию из полного пути
|
||||
:getdir
|
||||
set "%2=%~dp1"
|
||||
exit /b
|
||||
Reference in new issue
Block a user