Apakah ada sesuatu seperti Substitusi Perintah di Windows CLI?


14

Di Linux (Bash), ada cara untuk menggunakan perintah sebagai parameter untuk perintah lain, menggunakan back-ticks:

> echo ===== `time` =====

Ini akan mencetak:

===== Waktu saat ini adalah: 12: 22: 34.68 =====

Apakah ada cara untuk melakukan ini di cmd.exe di Windows?





@ misterjaytee: Substitusi perintah dan alias adalah hal yang berbeda.
user1686

@grawity - Terima kasih telah menunjukkan itu - Catatan untuk diri sendiri: harus membaca pertanyaan dengan benar sebelum menjawab ...
misterjaytee

Jawaban:


9

Coba ini:

echo. ===== %time% =====

Saya tahu ini mungkin bukan yang Anda inginkan, karena Anda menyebutkan penggantian perintah ... Jadi ini mungkin itu:

for /f "usebackq tokens=*" %i in (`date/t&time/t`) do echo.  ===== %i =====

Untuk petunjuk lebih lanjut tentang penggunaan usebackqcoba perintah ini:

for /?

4
Yap, for /fitulah yang saya cari. Terima kasih! Di samping catatan: Ini sangat kludgy dan sulit diingat (dibandingkan dengan cara bash). Saya harus menyerah "pemrograman kelelawar" dan belajar sesuatu yang lebih produktif - PowerShell mungkin?
Cristi Diaconescu

3

Di Windows, operator '()' memiliki perilaku yang mirip dengan substitusi perintah Bash.

Script Linux ini:

my_linux_variable=$(ls)
my_alternate_linux_variable=`ls`

echo $my_linux_command=$(ls)
echo $my_alternate_linux_command=`ls`

memberikan hasil yang serupa dengan Windows PowerShell:

$my_windowsPS_variable = (dir)

$my_windowsPS_variable

dan sebagai Windows CMD:

set my_windowsCMD_variable=(dir)
%my_windowsCMD_variable%

9
Contoh Windows CMD salah. Parens di cmd shell hanya menjalankan perintah dalam sebuah subkulit. Env var diatur ke "(dir)" dan dijalankan di baris kedua (ketika env var dikelilingi oleh%) - bukan substitusi yang Anda inginkan.
davidbak

1
ini tidak benar untuk perilaku windows cmd.exe
JJS

Ini adalah powershell, sedangkan pertanyaannya adalah tentang cmd.exe
Raúl Salinas-Monteagudo

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.