Para separar a string do diretório de uma variável no cmd

0

Eu gostaria de dividir o valor do diretório armazenado em uma variável.

Suponha, por exemplo, se eu atribuir um caminho de diretório (com aspas duplas)

"C: \ Arquivos de programas \ TeamViewer \ TeamViewer.exe" para uma variável a . Eu gostaria de dividir a última parte da variável TeamViewer.exe para uma variável b e o que antes disso para c .

Para a nota

  • O valor que atribuo a c pode variar dependendo da localização do arquivo que eu escolho.
  • O caminho do diretório não é predefinido. Farei isso definido pelo usuário.
por Dragonborn 16.02.2015 / 10:25

2 respostas

1

Obrigado pelo seu apoio. Eu usei sua idéia de remover aspas, mas não na linha Set a="C:\Program Files\TeamViewer\TeamViewer.exe" , mas na próxima linha For %%A in ("%a%") do ( e isso me deu o resultado que eu esperava. Eu estou mudando na próxima linha porque como eu disse o caminho que estou recebendo é definido pelo usuário e o caminho vem com aspas por padrão e não posso evitar as citações na linha anterior.

A codificação final da amostra é como abaixo e funciona como um encanto. Obrigado !!

@echo off
Set a="C:\Program Files\TeamViewer\TeamViewer.exe" 
For %%A in (%a%) do (
    Set c=%%~dpA
    Set b=%%~nxA
)
echo.Folder is: %c%
echo.Name is: %b%
    
por 17.02.2015 / 04:57
1

Sendo a a variável com o caminho completo, você pode fazer isso:

@echo off
Set a="C:\Program Files\TeamViewer\TeamViewer.exe" 
For %%A in ("%a%") do (
    Set c=%%~dpA
    Set b=%%~nxA
)
echo.Folder is: %c%
echo.Name is: %b%

Respondeu com a ajuda deste link

    
por 16.02.2015 / 11:09