2016-03-18 16 views
1

Neyin yanlış gittiğinden emin değilim. Diğerlerinden bulduğum kod örneklerini izlemeye çalışıyorum ben yapmaya çalışıyorum boyunca bir soru soran ve hatta cevaplar söylediklerini takip ettim ve yanlış yapıyorum anlamaya olamaz.Bir dosya dizgisinde son belirteci almayı denemek, ancak şu anda delimiter = "alıyorum beklenmedik bir şekilde

SET mypath=%~dp0 
SET mypath=%mypath:~0,-1% 

echo Selected Text file = %mypath% 
SET STRING=%mypath% 
echo %STRING% 
pause 
FOR /f "tokens=3* delimiters=\" %%i in ("%STRING%") do (
SET VAR= %%i 
echo %%i 
echo %VAR% 
) 
pause 

I get hatası Bu sınırlayıcı = \ "şu anda beklenmedikti.

+1

Bunu yazım hatası vardır gerekir. –

+0

Seçme anahtar sözcüklerinin doğru sözdizimini/yazımını görmek için komut isteminde '/ /' yazın ... – aschipfl

cevap

1

toplu kodlama dili Shakespere'in dili tam olarak

FOR /f "tokens=3* delims=\" %%i in ("%STRING%") do (

değil Ve Dennis van Gils yorumlarda belirtildiği gibi delayed expansion:

setlocal enableDelayedExpansion 
SET mypath=%~dp0 
SET mypath=%mypath:~0,-1% 

echo Selected Text file = %mypath% 
SET STRING=%mypath% 
echo %STRING% 
pause 
FOR /f "tokens=3* delims=\" %%i in ("%STRING%") do (
    SET VAR=%%i 
    echo %%i 
    echo !VAR! 
) 
pause 
+2

Gecikme nedeniyle hala yankılanmayacağını bildirmelisiniz. Genişleme –

+1

@DennisvanGils - yep.One moment lütfen . Tavada bir krep var ve iyi kokmuyor ... – npocmaka

+0

Tamam. Gecikmeli genişlemenin gerekli olup olmadığından emin değildim, ya da yığın yığınında bunun üzerine baktığım örneklere dayanarak (özellikle bu bir http://stackoverflow.com/questions/280969/windows-batch-loop-over-folder- string-and-parse-out-son-klasör-adı) –

İlgili konular