O que significa '/ n'% 1 '/ o'% u ''?

3

Eu executei o comando ftype em CMD e recebi a seguinte saída:

"C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.EXE" /n "%1" /o "%u"

Eu vi %1 antes como o marcador de posição do nome do arquivo, mas nunca vi o /n "%1" /o "%u" na saída de um comando ftype antes e não tenho certeza do que isso significa.

    
por Euretta Wilson 13.03.2017 / 21:29

1 resposta

0

Uma resposta preliminar sem ter certeza absoluta do comando completo que você executou:

Os argumentos de linha de comando fornecidos ao CMD ao abrir um programa podem ser ilusórios, na melhor das hipóteses. Eles não são realmente argumentos do comando ftype que você executou, mas uma mistura de argumentos de diferentes comandos de alto nível que o Windows usa para executar comandos e programas de lugares como o Registro do Windows. Você os está vendo porque o comando ftype que você executou retorna o nome completo do caminho, ao final do qual os argumentos sendo chamados para abrir o programa foram incluídos.

Alguns desses argumentos são documentados, como parte do cmd command e o start command (veja a seção Associações de Arquivos para o link RVD).

Outros também são documentados, mas muito mais difíceis de encontrar . A resposta vinculada é a única lista de argumentos de linha de comando para abrir um programa que consegui localizar entre todos os sites do StackExchange, e as informações contidas nele vêm de um comentário excluído em uma fonte obscura do Microsoft Developer. Site de rede (!).

No entanto, outros não são argumentos nativos do Windows, mas são criados e definidos pelo programa que os executa. Por exemplo, de acordo com isto no Microsoft Word , o Word possui seus próprios argumentos de linha de comando, um dos quais aparece primeiro na sua lista acima . De acordo com esse link, o argumento /n é usado pelo Word para iniciar uma nova instância:

/n

Starts a new instance of Word with no document open. Documents opened in each instance of Word will not appear as choices in the Window menu of other instances.

Você adivinhou corretamente que o parâmetro %1 se refere ao nome do arquivo sendo passado para o programa, mas tudo o que resta é provavelmente um argumento de linha de comando global que o Windows (idioticamente) decidiu que deveria permanecer em situação irregular.

Descobrir quais são essas coisas provavelmente é algo que só pode ser feito por você e envolveria o uso de echo para determinar o conteúdo desses argumentos.

Referências

CMD.exe - Windows CMD - SS64.com

Rob van der Woude - Arquivos em lote - O comando START

Quais variáveis especiais estão disponíveis ao escrever um comando shell para um menu de contexto

Como usar opções de linha de comando de inicialização para iniciar o Word 2010, o Word 2007, o Word 2003, o Word 2002 e o Word 2000

    
por 14.03.2017 / 01:25