Domanda

Ho i seguenti valori in un file batch DOS (ad esempio ...):

..\Apple\Jones  
..\Banana\Smith  
..\Pear\Wilson  

Ho bisogno di estrarre gli ultimi valori del nome ( "Jones", "Smith", "Wilson") da ogni valore. Quello che una tecnica posso usare che sarà sempre mi danno questi valori sottostringa?

È stato utile?

Soluzione

In base a questo argomento: Qual è il modo migliore per fare una sottostringa in un file batch?

Vi suggerisco di utilizzare

%~n0

Altri suggerimenti

Ho già scritto una funzione per questo. Si dà qualsiasi percorso e ti restituisce solo esso è il nome del file o il percorso. Opere per qualsiasi percorso: Url, percorso di Windows, Linux percorso, ecc ...

Copia questa funzione alla fine dello script batch: (istruzioni riportate di seguito)

rem ===========================================================================

:Name_From_Path
SetLocal

set _TMP_FOLDERNAME=%1
for %%g in ("%_TMP_FOLDERNAME%") do set _TMP_FOLDERNAME=%%~nxg

EndLocal & set _Name_From_Path=%_TMP_FOLDERNAME%
goto :EOF

rem ===========================================================================

Utilizzo:

CALL :Name_Of_Path ..\Apple\Jones
ECHO %_Name_From_Path%

Risultato: Jones

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top