Buraya zaten çok fazla iyi bilgi gönderildi -
örneğin, parantez “Bir gruplama operatörü
Bu, birlikte bir komut dizisini gruplandırmanıza olanak sağlar
CMD kabuğunun normalde tek bir komut beklediği yerde kullanmak için
görünmek" o “Bir gibisin bloğa başla ve bitiş bloğu ” -
ancak bazı basit şeyler göz ardı edilmiştir:
1. “Şu anda beklenmedik” hatası nasıl elde edilemez
Olması için yararlı bir şey alabilirsiniz
sadece komutları yazarak More?
Komut istemi:
C:\> (
More? date /t
More? )
Tue 04/11/2017
C:\> (
More? dir \Windows\win.ini
More? )
Volume in drive C is OS
Volume Serial Number is ▒▒▒▒-▒▒▒▒
Directory of C:\Windows
08/13/2014 12:26 PM 435 win.ini
1 File(s) 435 bytes
0 Dir(s) ▒▒▒,▒▒▒,▒▒▒,▒▒▒ bytes free
C:\>
Ayrı satırlara birden çok komut yazabilir ve )
son satırın sonuna kadar:
C:\> (
More? date /t
More? time /t
More? )
Tue 04/11/2017
06:18 PM
C:\> (
More? date /t
More? time /t)
Tue 04/11/2017
06:18 PM
C:\>
2. nasıl (
ve )
komutun anlamını etkiler mi?
Diğerlerinin de belirttiği gibi,
C:\> for %f in (\Windows\*.dll) do @echo %f
nerede (
... )
komutun sözdiziminin parçası
( FOR
, bu durumda).
Parantezleri kaldırırsanız, sözdizimi hatası alırsınız.
Bunun hakkında konuşmuyorum.
Belirtildiği gibi reklam nauseam , parantez içinde grup emreder.
Bu komut satırını göz önünde bulundurun:
echo cat & echo dog | findstr /n a
Anlamı
- Yap
echo cat
,
ve sonra
- Yap
echo dog | findstr /n a
“Köpek” kelimesi “a” harfini içermediğinden,
bu komut çıktı vermeyecektir.
Buna göre, yukarıdaki çıktı
C:\> echo cat & echo dog | findstr /n a
cat
Benzer şekilde,
C:\> echo cat & echo dog | findstr /n o
cat
1: köpek
ek olarak aldığımız 1: köpek
çıktı,
çünkü “köpek” yapar “o” içeren,
ve “köpek” ilkidir ( 1 st) giriş hattını findstr
Komut.
Şimdi düşünün
(echo cat & echo dog) | findstr /n a
(yukarıdakiyle aynı, ancak parantez eklenmiş), yani
- Yap
echo cat
,
ve sonra
yap echo dog
, ve
- Çıktısını yukarıdan alın ve içine yerleştirin
findstr /n a
Yani,
C:\> (echo cat & echo dog) | findstr /n a
1: kedi
C: \ & gt; (eko kedi ve yankı köpeği) | findstr / n o 2: köpek
çünkü komut satırının sol tarafındaki (# 1) çıktı
cat
dog
ve “a” satırda bulunur 1 bu metnin
ve “o” satırında bulunur 2 .
Artık sadece yazan bir çıktı satırı alamıyoruz cat
(satır numarası olmadan)
Çünkü echo cat
artık bağımsız bir emir değil.
ama bir parçası grup boru hattının sol tarafını oluşturur.
İşte daha basit bir komut grubu örneği:
C:\Temp> echo cat & echo dog > animals
cat
C:\Temp> type animals
dog
C:\Temp> (echo cat & echo dog) > animals
C:\Temp> type animals
cat
dog
Ve elbette, yukarıda ve diğer cevaplarda gösterildiği gibi,
gruba satır sonları ekleyebilirsiniz:
C:\> (
More? echo cat
More? echo dog
More? ) | findstr /n a
1: kedi
3. Parantezler yeni bir CMD örneği oluşturuyor mu?
Sanmıyorum; bariz, anlamlı bir şekilde değil:
C:\> (cd windows)
C:\Windows> set a=aardvark
C:\Windows> (set a=bat)
C:\Windows> echo %a%
bat
Unutmayın cd
parantez içinde
Ana CMD işleminin çalışma dizinini değiştirir,
ve set
parantez içinde
Parantez dışında ayarlanan değişken değerini geçersiz kılar.