Hej,
jag har en batch-fil som skall döpa om filer genom att ta bort de sista tecknen i varje filnamn i en mapp.
Tyvärr har filen döpt om filerna på mitt skrivbord istället när jag satt in felaktigt path.
Detta försökte jag åtgärda med nedan kod, där jag kör ett logiskt test inom ett IF-statement, men det fungerar inte. Filen döper fortfarande om filerna på skrivbordet.
Logiken som jag försökt uttrycka i batch-koden är:
set folder som skall döpas om
set foldern som batch-filen är i (skrivbordet)
ta bort sista tecknet "\" i sista strängen annars blir path c:\users\ni\Desktop\
OM folder INTE ÄR LIKA MED batch-foldern
DÖP om kod (som fungerar)
ANNARS
avsluta
Vad är det som gör att
IF "%FOLDER_PATH%" NEQ "%mr%"
ändå inte hoppar förbi omdöpningskoden utan ändå beslutar sig för att döpa om skrivbordsfilerna?
@echo off
setlocal enabledelayedexpansion
set X=12
set FOLDER_PATH=C:\Users\ni\folder\test\testset mr=%~dp0
set mr=%mr:~,-1%
IF "%FOLDER_PATH%" NEQ "%mr%" (pushd %FOLDER_PATH%
for %%f in (*) do if %%f neq %~nx0 (
set "filename=%%~nf"
set "filename=!filename:~,-%X%!"
ren "%%f" "!filename!%%~xf"
)
popd
)ELSE IF ()