Mostrando postagens com marcador MS-DOS. Mostrar todas as postagens
Mostrando postagens com marcador MS-DOS. Mostrar todas as postagens

terça-feira, 29 de março de 2011

Executar arquivo como outro usuário

Passada a apresentação da monografia, agora posso voltar a postar.

Aqui no trabalho surgiu um problema, vários funcionários utilizam o mesmo computador ao mesmo tempo (Ponto de Venda), para que não haja a necessidade de ficar fazendo "logon e logoff", para acessarem seus emails (Outlook), eu precisei de uma forma de executar o programa com usuários diferentes, como fazer isso?

Basta criar o atalho para a aplicação e utilizar o velho DOS com o comando RUNAS.

 Clique com o botão direito sobre o atalho e no campo "Destino" coloque o comando abaixo

runas /user:dominio\usuário "c:/pasta/pasta/programa.exe"

Pronto! Será solicitada a senha de usuário para que o programa rode com as credenciais do mesmo.

quinta-feira, 24 de fevereiro de 2011

Renomear arquivo sequencialmente com .bat

Este tópico surgiu a partir de uma necessidade de um leitor.


"Olá, tenho uma situação parecia e gostaria de saber se pode me ajudar. Tenho um arquivo que é gerado dentro de uma pasta sempre que um usuario do meu sistema dispara um processo. Este arquivo é importado diariamente pelo operador noturno para outro sistema, porem existem casos em que é necessaria a geraçao deste arquivo mais de uma vez por dia e o sistema sobreescreve o arquivo anterior sempre que é gerado um novo arquivo. Assim preciso de um batch que renomeie os arquivos sequencialmente, por exemplo, arquivo001.txt, arquivo002.txt, arquivo003.txt e assim sucessivamente. Este batch seria disparado por uma tarefa agendada a cada 5 minutos durante o dia, ou melhor ainda se pudesse ficar ativo o tempo todo no servidor monitorando a pasta de destino e renomeando os arquivos conforme fossem gerados. Enfim se puder me ajudar ficarei grato. Att Marco Aurelio."


Não sei se existe um jeito de guardar uma variável no próprio sistema, então pensei em guardá-la em um TXT, e através do .BAT ler esse arquivo e incrementar o valor da variável. Depois um outro Bat ao final do dia Escreveria novamente o valor 1 neste arquivo.


Pensei em criar um arquivo chamado VARIAVEL.TXT que armazenaria a variável do numero, ele começaria com o conteúdo "1"

Teríamos também um arquivo DOS com os seguintes comandos.



Linha 1 - Onde ele lê o arquivo VARIAVEL.TXT e armazena o conteúdo na variável "var"
Linha 2 - Elimina os espaços na variável(não sei porque, mas quando ele lê o arquivo, adiciona um espaço no final e atrapalha a segunda execução do arquivo.
Linha 3 - Renomeia o arquivo
Linha 4 - Cria a variável "nova" que é a "var"+1
Linha 5 - Imprime a variável na tela e escreve ela no arquivo.

Bem, mas creio que até o momento só vai funcionar se existir o arquivo TESTE.TXT, caso não exista o arquivo com este nome, ocorrerá um erro e o BAT deixará de ser executado na linha 3.


E também para voltar a contagem para um, um outro BAT pode substituir esse arquivo pelo arquivo com o texto 1, com um comando.


copy 1.txt variavel.txt


 Qualquer dúvida estamos aqui !

sexta-feira, 3 de dezembro de 2010

Imprimir usando a porta paralela de outro computador

Trabalhar em empresa privada é um tanto desafiador, pois o objetivo principal da TI é oferecer os serviços a um baixo custo, desta forma vamos a mais uma postagem do "Túnel do Tempo"

Aqui temos uma aplicação rodando em CLIPPER, e existe apenas um arquivo de configuração para todas as estações, nele é possível definir onde vai ser impresso(LPT1, LPT2 ....), este programa controla parte de hospedagem do hotel, são dois computadores, cada um com sua impressora, o problema é quando muita gente quer dar entrada ao mesmo tempo, e foi então que um recepcionista me pediu para poder imprimir de um terceiro computador na impressora matricial, tudo bem, bastou mapear a unidade, certo? Errado, o windows entendeu direitinho , o problema é que não tinha como configurar apenas uma estação, então descobri como "enganar" o DOS,  crie um arquivo bat e coloque na inicialização do computador.

@echo off
net use lpt1: \\NomeDoComputador\NomeDeCompartilhamentoDaImpressora

Imprortante! Utilize o nome do computador e não o seu endereço IP, se não apenas o computador que executar este comando imprimirá na impressora

Caso você já tenha feito isso(igual eu), não se desespere, use o comando

net use

para verificar os compartilhamentos de rede, quando encontrar o compartilhamento que está bloqueando a impressora, use o comando

net use lpt1:  \delete

LPT1 no meu caso, mas esse comando pode ser usado para desfazer qualquer compartilhamento.

.bat para renomear arquivos com a data atual

Semana passada precisei dar uma volta ao "Túnel do tempo", depois de jogar Quake, Duke Nukem 3d, e alguns outros clássicos de 32 e 16 bits, nunca pensei que voltaria ao velho DOS, mas enfim, eu estava errado, e nestes três típicos colocarei algumas dicas que você pode precisar um dia =)

Me deparei com a seguinte situação, utilizando a ferramenta nativa de Backup do windows server 2003, ntbackup, diariamente criamos os backup's dos servidores, bastando apenas que uma pessoa no período noturno renomeie os mesmos com a data que ele foi feito, o problema é que aos finais de semana ninguém está disponível para executar esta tarefa, e também, caso o funcionário do período noturno falte, o backup simplesmente substitui o arquivo, para resolver isso dei uma pesquisada e descobri como renomear automaticamente através de um arquivo.bat

Para renomear automaticamente arquivos no Windows Server 2003

setlocal enabledelayedexpansion
for /f "tokens=2 delims= " %%a in ('date /t') do set date=%%a
set date=%date:/=-%
ren teste.txt teste-%date%.txt

Para renomear automaticamente arquivos no Windows XP

@echo off&setlocal enabledelayedexpansion
for /f "tokens=2 delims= " %%a in ('date /t') do set data=%%a
set data=%data:/=-%
ren teste.txt teste-%data%.txt

O porque da diferença, no meu caso, a data do servidor estava em inglês, e devido a aplicações como SQL server e Servidor Apache, preferi não arriscar mudar as configurações regionais.

Salve o que você preferir em um arquivo .bat, e agende no gerenciador de tarefas.

O resultado ao executar o arquivo .bat será teste-03-12-2010.txt  no caso de ele ser executado hoje

Lembrando que o arquivo deverá estar na mesma pasta do arquivo, ou então adicione um comando no inicio do arquivo para executá-lo a partir de outra pasta, ex

cd c:/pasta/pasta

facebook

Postagens populares