Eu sou novo na escrita de roteiros e não consigo fazer este funcionar. Eu poderia, se movesse os arquivos para um caminho sem espaço, mas gostaria que funcionasse com o espaço, se pudesse.
Quero extrair várias atualizações do Office para uma pasta com um arquivo .cmd. Para tornar o arquivo em lote utilizável em qualquer computador, eu defino uma variável de caminho que só preciso alterar em um lugar para executá-la em outra máquina. O problema é que o caminho tem um espaço. Se eu colocar aspas ao redor do caminho na definição, cmd.exe os colocará ao redor do caminho antes de anexar o nome do arquivo e as opções e o lote falhará com "Erro de sintaxe da linha de comando". Sem as aspas, ele falha com "não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote."
Para teste, estou usando o botão de ajuda até ou se conseguir fazê-lo funcionar. Posso fazer isso usando um nome de arquivo / pasta 8.3 (por exemplo, Meus documentos como MeuDocu ~ 1), mas pode ser feito de outra maneira?
Respostas:
Experimente algo assim:
fonte
eu uso
ao atualizar o caminho:
fonte
Existem duas opções aqui. Primeiro, você pode armazenar o caminho sem aspas e apenas citá-lo mais tarde:
Outra opção que você pode usar é uma sub-rotina que permite remover aspas (mas, neste caso, não é uma ideia muito boa, já que você está adicionando aspas, removendo-as e adicionando-as novamente sem benefício):
O
%~1
remove as aspas em torno do argumento. Isso é útil ao passar nomes de pastas entre aspas, mas, como disse antes, neste caso particular não é a melhor ideia :-)fonte
set LALA=%~1
foi o que funcionou para mim.Experimente isso;
crie uma variável como abaixo
Em seguida, substitua o caminho por variável. Certifique-se de adicionar aspas para início e fim
fonte
Sempre coloco o caminho entre aspas quando estou criando um arquivo .bat. (Acabei de adicionar PAUSE para que a tela não seja fechada.)
Por exemplo:
fonte
A maneira correta de fazer isso é:
fonte
A maneira mais fácil de corrigir esse problema é colocar o nome da pasta entre aspas:
(cd\New Folder\...) --> (cd\"New Folder"\...)
Espera que isso ajude.
fonte
Se você precisar armazenar o caminho permanente (o caminho não é alterado quando o cmd é reiniciado)
Execute o Prompt de Comando como administrador (clique com o botão direito em cmd.exe e selecione Executar como administrador)
Em cmd
setx path "%path%;your new path"
, digiteVerifique se o caminho é percorrido corretamente digitando path e pressionando Enter
fonte
também tente adicionar barras duplas, como isso funciona apenas para mim
definir dir = "C: \\ 1. Alguma pasta \\ Outra pasta \\ Só porque"
@echo em MKDIR% dir%
Meu Deus, depois de postar, eles removeram o segundo \ no meu post, então se você abrir meu comentário e ele mostrar três, você deve lê-los como dois ......
fonte