Domanda

Attualmente sto cercando un modo per prendere una variabile in batch e analizzare solo il nome del file.

Ad esempio, passo il mio file batch un parametro -s da un'altra applicazione che viene successivamente impostata sulla mia variabile di origine. La variabile del file di origine contiene in genere qualcosa del tipo: C: \ Programmi \ myapp \ Instance.1 \ Data \ filetomove.ext.

Presumo di leggere dalla fine della variabile fino al primo " \ " e impostare il risultato su un nuovo nome file variabile ma non sono stato in grado di utilizzare il " per / f " comandare con successo.

Qualsiasi aiuto sarebbe molto apprezzato!

Aggiornamento: sono disponibili solo XP standard o Windows 2000/2003 ... (non è possibile assumere i kit di risorse installati).

È stato utile?

Soluzione

Se viene inserito come argomento nello script, ovvero% 1,% 2, ecc., puoi estrarre solo il nome file e l'estensione in una variabile come questa:

set FILENAME=%~nxN

dove N è l'indice dell'argomento. Ad esempio, questo script farà eco solo al nome file del primo argomento:

@echo off
set FILENAME=%~nx1
echo %FILENAME%

Altri suggerimenti

Versione leggermente migliorata:

set FILENAME="%~nx1"

La parentesi aggiuntiva garantirà che caratteri speciali, come "& amp;", non interferiscano durante l'esecuzione in batch.

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