Necesito obtener el nombre de la carpeta de un archivo por lotes que se está ejecutando actualmente. He estado tratando de iterar sobre el directorio actual utilizando la siguiente sintaxis (que está mal en la actualidad):Lote de Windows: sobre la cadena de la carpeta y analizar el nombre de la última carpeta
set mydir = %~p0
for /F "delims=\" %i IN (%mydir%) DO @echo %i
par de problemas en que me parece que no puede pasar el valor de la variable 'midirectorio' en el que la cadena de búsqueda . Parece funcionar solo si paso comandos; Tengo la sintaxis incorrecta y no puedo entender por qué.
Mi idea era recorrer la cadena de carpetas con un delimitador '\', pero esto también está causando problemas. Si configuro una variable en cada ciclo, el último conjunto de valores será el nombre de la carpeta actual. Por ejemplo, dada la siguiente ruta:
C: \ Carpeta1 \ Carpeta2 \ Folder3 \ Archive.bat
yo esperaría para analizar el valor 'Folder3'.
Necesito analizar ese valor ya que su nombre será parte de otra carpeta que voy a crear más abajo en el archivo por lotes.
Muchas gracias si alguien puede ayudar. Puedo estar ladrando el árbol equivocado por completo por lo que cualquier otro enfoque sería muy recibido también.
Le gusta '|' como mero delimitador, solo tiene que poner% mydir% entre comillas como en '%% i IN ("% mydir%") ' – ErikE