Windows CLI'da Komut Değiştirme gibi bir şey var mı?


14

Linux'ta (Bash), bir komutu başka bir komut için parametre olarak geri keneler kullanarak kullanmanın bir yolu vardır:

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

Bu yazdırır:

===== Geçerli saat: 12: 22: 34.68 =====

Bunu WIndows üzerinde cmd.exe yapmanın bir yolu var mı?




Ayrıca, bu Bu yayını (bkz cmd den doskey komutunun kullanımını )
misterjaytee

@misterjaytee: Komuta ikamesi ve takma adlar farklı şeylerdir.
user1686

@grawity - Bunu işaret ettiğiniz için teşekkürler - Kendine not: cevap vermeden önce soruyu doğru okumalıdır ...
misterjaytee

Yanıtlar:


9

Bunu dene:

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

Bunun istediğin olmadığını biliyorum, çünkü komut ikamesinden bahsettin ... Yani bu olabilir:

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

usebackqBu komutu deneyin hakkında daha fazla ipucu için :

for /?

4
Evet, for /faradığım şey bu. Teşekkürler! Bir yan notta: Çok kaba ve hatırlanması zor (bash yoluna kıyasla). Ben "yarasa programlama" vazgeçmek ve daha verimli bir şey öğrenmek gerekir - PowerShell belki?
Cristian Diaconescu

3

Windows'ta '()' işleci, Bash komutunun değiştirilmesine benzer bir davranışa sahiptir.

Bu Linux betiği:

my_linux_variable=$(ls)
my_alternate_linux_variable=`ls`

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

Windows PowerShell ile benzer bir sonuç verir:

$my_windowsPS_variable = (dir)

$my_windowsPS_variable

ve Windows CMD olarak:

set my_windowsCMD_variable=(dir)
%my_windowsCMD_variable%

9
Windows CMD örneği yanlış. Cmd kabuğundaki parens, yalnızca alt kabukta bir komut yürütür. Env var "(dir)" olarak ayarlanır ve ikinci satırda yürütülür (env var% ile çevrili olduğunda) - gerçekten istediğiniz ikameyle değil.
davidbak

1
Bu, cmd.exe davranışı için yanlış
JJS

Bu powershell, soru cmd.exe hakkında
Raúl Salinas-Monteagudo

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.