- azothdm
- Idade : 37
[DUVIDA]Setar variáveis
Ter Fev 17, 2009 12:55 am
Olá a todos!
Gostaria de saber se é possível colocar em uma variável o diretório onde o bat está sendo executado. A intenção disso, é fazer com que ele compare esse valor com o outro. Exemplo:
Digamos que inicialmente o bat foi instalado em c:/bat
Na inicialização do programa, é feita a verificação se o mesmo encontra-se no diretório original de instalação, c:/bat, colocado na variável, inst no momento da instalação e permanescendo salvo em um arquivo de configuração.
O diretório atual, de execução do bat será colocado em outra variável: atual. Após essas duas variáveis seriam comparadas e se diferirem, o programa se excluirá automaticamente.
O problema está em colocar o diretório atual de execução do programa em uma variável automaticamente.
pelo que verifiquei nos programas aqui criados, acho que isso vai ser molesa pra vocês. Espero me ajudarem
Obrigado
azothdm
Gostaria de saber se é possível colocar em uma variável o diretório onde o bat está sendo executado. A intenção disso, é fazer com que ele compare esse valor com o outro. Exemplo:
Digamos que inicialmente o bat foi instalado em c:/bat
Na inicialização do programa, é feita a verificação se o mesmo encontra-se no diretório original de instalação, c:/bat, colocado na variável, inst no momento da instalação e permanescendo salvo em um arquivo de configuração.
O diretório atual, de execução do bat será colocado em outra variável: atual. Após essas duas variáveis seriam comparadas e se diferirem, o programa se excluirá automaticamente.
O problema está em colocar o diretório atual de execução do programa em uma variável automaticamente.
pelo que verifiquei nos programas aqui criados, acho que isso vai ser molesa pra vocês. Espero me ajudarem
Obrigado
azothdm
- Boss-Head
- Idade : 36
Re: [DUVIDA]Setar variáveis
Ter Fev 17, 2009 9:38 am
exemplo :
salve esse script em quaquer pasta e execute !
depoi crie uma pasta em C:\teste e salve ele dentro e execute !
espero que seja essa sua duvida !
@echo off
if %~d1%~p1%0=="C:\teste\%~n0%~x0" echo você está no diretorio certo&goto sai
echo você está no diretorio errado
pause
exit
:sai
pause
salve esse script em quaquer pasta e execute !
depoi crie uma pasta em C:\teste e salve ele dentro e execute !
espero que seja essa sua duvida !
@echo off
if %~d1%~p1%0=="C:\teste\%~n0%~x0" echo você está no diretorio certo&goto sai
echo você está no diretorio errado
pause
exit
:sai
pause
- Ryokusei Wing
- Idade : 27
Re: [DUVIDA]Setar variáveis
Ter Fev 17, 2009 11:50 pm
Não entendi muito bem a dúvida.
Mas tente usar a variável "%cd%".
Ex:
Mas tente usar a variável "%cd%".
Ex:
- Código:
@echo off
set main_dir=%cd%
Bla
bLa
blA
if "%cd%" neq "%main_dir%" (echo diretório incorreto)
- azothdm
- Idade : 37
Re: [DUVIDA]Setar variáveis
Qua Fev 18, 2009 5:48 pm
Ryokusei Wing escreveu:Não entendi muito bem a dúvida.
Mas tente usar a variável "%cd%".
Ex:
- Código:
@echo off
set main_dir=%cd%
Bla
bLa
blA
if "%cd%" neq "%main_dir%" (echo diretório incorreto)
Olá Ryokusei Wing. Obrigado pela ajuda, não sabia que já existia uma
variável do diretório %cd%. Fiz o programa da seguinte forma:
- Código:
@echo off
:: Renomeia o arquivo de configuração e o chama para setar as variáveis
ren conf.gp set.bat
call set.bat
:: Mostra as variáveis só para confirmação
echo. %cd%
echo. %unid%
:: Condição
if "%cd%"=="%unid%" (
echo.&echo. Executa o programa pois o diretorio esta correto!
goto fim
) ELSE (
echo.&echo. Nao executa o programa pois o diretorio nao esta correto!
goto fim
)
:fim
ren set.bat conf.gp
Obrigado pela ajuda.
Gostaria de agradecer também ao Boss-Head por responder, porém não obtive sucesso ao fazer o que por ele foi sugerio.
Obrigados a todos
azothdm
- Boss-Head
- Idade : 36
Re: [DUVIDA]Setar variáveis
Qua Fev 18, 2009 6:30 pm
O set.bat contem a variavel de onde deve ser instalado o programa ?
Só por curisidade roda esse script e veja se ele funciona tambem.
Utilizei o mesmo seu só mudei o tipo de comparação!
@echo off
:: Renomeia o arquivo de configuração e o chama para setar as variáveis
ren conf.gp set.bat
call set.bat
:: Mostra as variáveis só para confirmação
echo. %~d1%~p1%0
echo. "%unid%\%~n0%~x0"
:: Condição
if %~d1%~p1%0=="%unid%\%~n0%~x0" (
echo.&echo. Executa o programa pois o diretorio esta correto!
goto fim
) ELSE (
echo.&echo. Nao executa o programa pois o diretorio nao esta correto!
goto fim
)
:fim
ren set.bat conf.gp
pause
Só por curisidade roda esse script e veja se ele funciona tambem.
Utilizei o mesmo seu só mudei o tipo de comparação!
@echo off
:: Renomeia o arquivo de configuração e o chama para setar as variáveis
ren conf.gp set.bat
call set.bat
:: Mostra as variáveis só para confirmação
echo. %~d1%~p1%0
echo. "%unid%\%~n0%~x0"
:: Condição
if %~d1%~p1%0=="%unid%\%~n0%~x0" (
echo.&echo. Executa o programa pois o diretorio esta correto!
goto fim
) ELSE (
echo.&echo. Nao executa o programa pois o diretorio nao esta correto!
goto fim
)
:fim
ren set.bat conf.gp
pause
- azothdm
- Idade : 37
Re: [DUVIDA]Setar variáveis
Qua Fev 18, 2009 7:59 pm
Olá Boss-Head
No momento continuo fazendo o programa, então ainda possuo carregada todos as variáveis de set.bat. Utilizando os comandos que você passou não consegui executar a tarefa. Fiz o seguinte:
coloquei
echo. %~d1%~p1%0
echo. "%unid%\%~n0%~x0"
um de cada vez na linha de comendo do cmd, e ele não mostrou os diretórios correspondentes para:
echo. %cd%
echo. %unid%
executando a condição if %~d1%~p1%0=="%unid%\%~n0%~x0" não haveria resultado, uma vez que ele não consegui testar a condição. Poderia me explicar o por que dos valores "%~d1%~p1%0" e "%~n0%~x0"?
Grato
azothdm
No momento continuo fazendo o programa, então ainda possuo carregada todos as variáveis de set.bat. Utilizando os comandos que você passou não consegui executar a tarefa. Fiz o seguinte:
coloquei
echo. %~d1%~p1%0
echo. "%unid%\%~n0%~x0"
um de cada vez na linha de comendo do cmd, e ele não mostrou os diretórios correspondentes para:
echo. %cd%
echo. %unid%
executando a condição if %~d1%~p1%0=="%unid%\%~n0%~x0" não haveria resultado, uma vez que ele não consegui testar a condição. Poderia me explicar o por que dos valores "%~d1%~p1%0" e "%~n0%~x0"?
Grato
azothdm
- Boss-Head
- Idade : 36
Re: [DUVIDA]Setar variáveis
Qua Fev 18, 2009 8:32 pm
Eu utilizo esse tipo de comando a algum tempo !
então para mim é familiar !
Um dos motivos de trabalhar com ele é esse !
[Você precisa estar registrado e conectado para ver este link.]
O outro é esse
então para mim é familiar !
Um dos motivos de trabalhar com ele é esse !
[Você precisa estar registrado e conectado para ver este link.]
O outro é esse
- Código:
@echo off
set cd=joaquim
ren conf.gp set.bat
call set.bat
echo. %cd%
echo. %unid%
if "%cd%"=="%unid%" (
echo.&echo. Executa o programa pois o diretorio esta correto!
goto fim
) ELSE (
echo.&echo. Nao executa o programa pois o diretorio nao esta correto!
goto fim
)
:fim
ren set.bat conf.gp
pause
- Código:
@echo off
ren conf.gp set.bat
call set.bat
cd c:\
echo. %cd%
echo. %unid%
if "%cd%"=="%unid%" (
echo.&echo. Executa o programa pois o diretorio esta correto!
goto fim
) ELSE (
echo.&echo. Nao executa o programa pois o diretorio nao esta correto!
goto fim
)
:fim
ren set.bat conf.gp
pause
- Boss-Head
- Idade : 36
Re: [DUVIDA]Setar variáveis
Qua Fev 18, 2009 9:28 pm
Os comandos que postei são visiveis somente dentro de um .bat
portanto salve esse script abaixo com qualquernome.bat e execute ele !
E tenho certeza que irá entender as variáveis descritas nele !
%0 faz referencia a sí próprio %1 faz referência a outro
Estou postando não só para você más pra todos que querem aprender ,
sei que seu script já está funcionando, más só queria concluir a teoria .
Os exemplos que citei acima de possiveis problemas eu já me deparei com eles .
portanto salve esse script abaixo com qualquernome.bat e execute ele !
E tenho certeza que irá entender as variáveis descritas nele !
%0 faz referencia a sí próprio %1 faz referência a outro
Estou postando não só para você más pra todos que querem aprender ,
sei que seu script já está funcionando, más só queria concluir a teoria .
Os exemplos que citei acima de possiveis problemas eu já me deparei com eles .
- Código:
@echo off
echo você está vendo na tela os atributos e
echo caminho do arquivo atual
echo.
echo Nome completo entre aspas---: %0
echo Caminho arquivo s/ aspas----: %~f0
echo Disco-----------------------: %~d0
echo Somente caminho-------------: %~p0
echo Nome------------------------: %~n0
echo Extensao--------------------: %~x0
echo Caminho abreviado-----------: %~s0
echo Atributos-------------------: %~a0
echo Criado em-------------------: %~t0
echo Tamanho---------------------: %~z0
pause
echo Agora vamos chamar um outro arquivo para ver seus atributos
echo.
echo Digite o nome e caminho de outro arquivo pode ser .exe etc.
echo.
set /p arquivo= Ou arraste e solte ele aqui
call :teste %arquivo%
:teste
echo.
echo Nome completo entre aspas---: %1
echo Caminho arquivo s/ aspas----: %~f1
echo Disco-----------------------: %~d1
echo Somente caminho-------------: %~p1
echo Nome------------------------: %~n1
echo Extensao--------------------: %~x1
echo Caminho abreviado-----------: %~s1
echo Atributos-------------------: %~a1
echo Criado em-------------------: %~t1
echo Tamanho---------------------: %~z1
pause
- azothdm
- Idade : 37
Re: [DUVIDA]Setar variáveis
Qua Fev 18, 2009 10:12 pm
Olá Boss-Head
Muito útil os comandos apresentados por você. Agradeço muito...
Fiz e agora deu certo...
Grado
azothdm
Muito útil os comandos apresentados por você. Agradeço muito...
Fiz e agora deu certo...
Grado
azothdm
- Norton
- Idade : 30
Re: [DUVIDA]Setar variáveis
Qui Ago 19, 2010 8:47 pm
Sei que o tópico é antigo mas está perfeito para minha pergunta.
Tem como usar essas pegar uma dessas propriedades (ex: somente caminho) diretamente na variavel? Algo como %variavel%%~p1?
Já sei fazer com call :teste %variavel% mas queria saber se tem um meio mais prático ^^
Grato.
Tem como usar essas pegar uma dessas propriedades (ex: somente caminho) diretamente na variavel? Algo como %variavel%%~p1?
Já sei fazer com call :teste %variavel% mas queria saber se tem um meio mais prático ^^
Grato.
- C-Com
Re: [DUVIDA]Setar variáveis
Dom Ago 22, 2010 11:35 am
Tem como usar essas pegar uma dessas propriedades (ex: somente caminho) diretamente na variavel? Algo como %variavel%%~p1?
Diretamente eu acredito que não... mas você poderia, alternativamente, usar um for pra transferir o corpo da string que contém o nome. Por exemplo:
- Código:
for /f "delims=*" %a in ("%arquivo%") do echo %~pa
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum