Como eu realmente abro um programa a partir de um arquivo de lote? Tudo o que ele faz é abrir um prompt de comando com esse nome de arquivo [duplicado]

4

Atualmente, estou tentando aprender scripts de arquivos em lote, então talvez eu não esteja vendo o que estou fazendo de errado, mas estou apenas criando um arquivo em lote muito simples que abre um arquivo de texto.

Aqui está o código que estou usando:

@echo off
title Opening a File Lesson
START "C:\Projects\batch\hi.txt"
pause

Em vez de abrir o arquivo de texto como deveria, tudo o que ele faz é abrir o prompt de comando Arquivo de lote com a saída correspondente:

Press any key to continue . . .

O que é bom, é o que eu pretendia, mas em vez de abrir o arquivo de texto, ele simplesmente abre OUTRO prompt de comando com o caminho do arquivo: C: \ Projects \ batch \ hi.txt como legenda e não faz absolutamente nada além de saída meu caminho padrão:

Microsoft Windows [Version 6.1.7600] Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Projects>

Alguém pode me orientar sobre o que estou fazendo de errado e por que não está abrindo com um programa padrão? Eu tentei abrir outros arquivos também como Outlook e Visual Studio 2010 usando o caminho absoluto (destino) e faz a mesma coisa para que não seja apenas arquivos de texto. Qualquer ajuda seria apreciada, eu não estou acostumado a linguagens de script ainda.

    
por Chris 24.04.2013 / 17:11

2 respostas

6

Para manter o alinhamento do seu exemplo atual, eu adicionaria o seguinte:

START "" notepad.exe C:\Projects\batch\hi.txt

porque o que você realmente quer fazer é abrir notepad e passar um parâmetro, neste caso é o nome do arquivo. A solução de Athom pode funcionar também, mas esta apenas surgiu.

Se você quiser aguardar o fechamento do bloco de notas antes de terminar:

START "" /wait notepad.exe C:\Projects\batch\hi.txt

O título da nova janela de lote está dentro das aspas, nos meus exemplos eu não preciso de um título, então deixo em branco. Eu acho que o comando START espera um, então pode ser obrigatório.

Eu também sugiro que você aprenda o powershell quando o seu feito, as palavras power e shell realmente descreverem sua utilidade. Eu não diria desistir de lote, porque agora algumas coisas são mais fáceis em lote. Também neste momento o powershell não pode retornar códigos de saída negativos que apenas suam, mas eu divago.

    
por 24.04.2013 / 20:22
2

.txt não requer o comando de início.

Basta ligar:

"C:\Projects\batch\hi.txt"

Outros formatos exigem o início, por exemplo, csv eu uso start.

    
por 24.04.2013 / 18:18