използване на параметри на псевдоним в командния ред на прозореца

Източник: http://jpsoft.com/help/index.htm?alias.htm

Псевдонимите могат да използват параметри на командния ред или параметри като тези в пакетните файлове. Параметрите на командния ред са номерирани от %0 до %511. (%0 съдържа името на псевдонима.)

Например, следният псевдоним ще промени директориите, ще изпълни команда и ще се върне към оригиналната директория:

псевдоним в pushd %1 & %2$ & popd

когато стартирам горното, моят команден ред дава съобщение за грешка

%1 * Не може да се прочете стойността на псевдонима * '%2' не се разпознава като вътрешна или външна команда, работеща програма или пакетен файл. 'popd`' не се разпознава като вътрешна или външна команда, работеща програма или пакетен файл.

ако вместо това използвате двойни кавички, псевдоним в "pushd %1 & dir & popd", той не интерпретира %1, когато изпълните псевдонима

C:\abc\def>alias Изхвърляне на всички дефинирани псевдоними за CMD.EXE. в =pushd %1 & dir & popd

alias def няма да работи

---------РЕДАКТИРАНЕ------------ позволете ми да опитам примерен изход с прост ехо псевдоним

D:\abc\def>псевдоним /?

Употреба: ПСЕВДОНИМ [-v] [-p име на програма] [-f спецификация на файла] [ ]

         [-v] means verbose output.

         [-d] means delete aliases.

         [-p programName] specifies which image file name these alias

                          definitions are for.  Default is CMD.EXE

         [-f filespec] specifies a file which contains the alises.

C:\Office\dev15>извън псевдоним 'echo %1'

%1' * Не може да се прочете стойността на псевдоним *

C:\Office\dev15>alias out backtick echo %1 backtick

%1` * Не може да се прочете стойността на псевдоним *

C:\Office\dev15>извън псевдоним "echo %1"

C:\Office\dev15>псевдоним

Изхвърляне на всички дефинирани псевдоними за CMD.EXE.

out             =echo %1

C:\Office\dev15>out abc

%1

C:\Office\dev15>alias out echo %1

%1 * Не може да се прочете стойността на псевдоним *

C:\Office\dev15>out abc

ECHO е включено.

Проблемът е, че както единичните кавички, така и обратната отметка водят до грешка, докато двойните кавички няма да третират %1 като променлив параметър, който също се опитва с нито една от кавичките. пак нямаше да работи


person freshWoWer    schedule 15.12.2010    source източник


Отговори (1)


Добре, опитайте това (използвайте копиране и поставяне):

   alias dtxt = `pushd %1 & dir %2$ & popd`

Това задава псевдонима „dtxt“ на следните команди:

   pushd %1
   dir %2
   popd

Обърнете специално внимание на обърнатите единични кавички (`) около дефиницията на псевдонима. Това се намира в горния ляв клавиш на клавиатурите ISO (UK) и ANSI (САЩ).

Ще трябва да предоставите два параметъра, %1 и %2, когато изпълнявате dtxt - целево име на пътя и параметър за командата DIR като в следните примери:

   dtxt c:\temp *.txt

Накратко, PUSHD избутва името на текущата работна директория в стека LIFO и променя директорията на c:\temp.

След това командата DIR се изпълнява с %2 като свой параметър - в този случай '*.txt'.

Накрая POPD възстановява предишната работна директория, като я изважда от стека.

FYI, това е еквивалентно на следната стандартна DOS команда:

   dir c:\temp\*.txt

Следната команда в стандартен DOS също ще работи добре:

   pushd & dir *.txt & popd

Но очевидно „dtxt“ е по-кратък и спестява натискания на клавиши!

person Paul Tomasi    schedule 19.12.2010
comment
Ето изхода ми, след като копирах и поставих командата D:\›alias dtxt = pushd %1 & dir %2$ & popd Том в устройство D е нов том Серийният номер на тома е директория на D:\ Файлът не е намерен 'popd`' не се разпознава като вътрешен или външен команда, работеща програма или пакетен файл. - person freshWoWer; 20.12.2010
comment
freshWoWer, на каква операционна система работиш това? Също така, използвате ли „Take Command“? - Ако да, коя версия? - person Paul Tomasi; 22.12.2010