CMD / BATCH kullanımı için beton kutular [kapalı]


0

Lütfen özür dilerim özür dilerim. Komut satırı ile ilgili fazla tecrübem yok.

Aramalarımdan CMD kullanımının (*) temel nedeni otomasyondur. Yine de somut davalar bulamadım. Çoğu örnek, tartışmalı örnekler veya otomasyona gerçekten ihtiyaç duyulmayan basit vakalardır.

Dolayısıyla benim sorum - CMD ve toplu iş dosyalarının gerçek dünyada kullanıldığı eylem örnekleri nelerdir? (Ve aşağıda olduğu gibi) kişisel tercihlerin dışında ve nerede olduğu GUI yok.) Senaryoyu aramıyorum, sadece amacı.

* Kişisel tercihler veya bir GUI'nin bulunmadığı durumlar dışında.


1
Sorunuzu yanıtlamak için elimden geleni yaptım ama bu kadar geniş bir soru, muhtemelen Çok Geniş olarak kapatılacak. Oldukça geniş kapsamlı bir soru sormanızı öneririm.
50-3

1
Java, Toplu İş, C, F, R, vb. Varken neden C # kullanıyorsunuz? Toplu iş, tekerleği yeniden icat ederek zamanınızı boşa harcamak yerine mevcut CMD araçlarını kullanmanızı sağlar.
Ƭᴇcʜιᴇ007

@ techie007 C # küçük bir yan nokta idi. (Şimdi düzenlenmiş çünkü batch et al. Vs C # meselesi olarak yorumlandığını görüyorum.) Sorumum, gerçek dünyada herhangi bir dilde otomatik işlemlerin yapılmasıdır. (Tabii ki, özel bir uygulama gerektirecek olanlar hariç).
ispiro

2
Bana göre, neden sadece bu görev için her seferinde yepyeni bir uygulama yazmak yerine, bir görevi yerine getirmek için birisinin neden birden fazla programı bir araya getireceğini soruyorsunuz. İki kişilik zaman ve para. ;)
Ƭᴇcʜιᴇ007

Yanıtlar:


1

Toplu iş dosyaları herhangi bir diğer komut dosyası aracıyla aynı faydayı gösterir, tekrarlanan (bazen karmaşık, bazen sıkıcı) görevleri kolaylaştırır.

Birkaç ay önce çok basit bir toplu komut dosyası yazdım, çünkü her akşam saat 18: 00'de bir dizi komut çalıştırmak istedim. Bu yüzden, değişiklikleri kontrol etmek için mercurial komutlar kullanan bu betiği yarattım (sakladığım bir sitenin sahibi, FTP ile bir şeyler ekler ve kaldırır). Sonra herhangi bir değişiklik yapıp bunları kökene iter (sunucum).

hg addremove
hg commit -m "Daily update from Prod"
hg push

Sonra her gün bu betiği çalıştırmak için zamanlanmış bir görev ayarladım. Bu, yıllardır yazdığım ilk toplu komut dosyası, ancak, geliştirme yaptığım son işimde Mac'e taşınmamdan kaynaklanıyor.

Ancak, günlük olarak kabuk komut dosyalarını (farklı bir işletim sisteminde aynı tür şeyler) kullanıyorum. En çok kullandığım, bir ağ sürücüsünün monte edilmesini sağlar, beni kaynak kod depomuza kaydeder (bir şifre ister) ve derleme betiğinden çıkar. Sonuç olarak, bunu kendim yapmak için komutları girmem 3 dakika sürecek, ancak yaptığım zaman, sürücümün monte edildiğini (haritalandırılmış) kontrol etmeyi düzenli olarak unuttum ve bu 10 ila 20 dakikalık bir gecikmeye neden oldu ... Senaryo unutmadı.

Bir topluluk kolejinde sistem yöneticisi olarak çalışıyordum ve toplu otomasyon için çoğu zaman sizin de belirttiğiniz gibi toplu komut dosyalarını kullandım. Oraya başladığımda, virüsten koruma yazılımını el ile güncellemek ve bir tarama yapmak için her bir makineyi ziyaret etmemiz gerekti. Güncelleştirmeyi ağımızdaki belirli bir konumdan kopyalayacak, yükleyecek ve bir tarama başlatacak bir toplu komut dosyası oluşturdum. Sonra bir gruptaki her makinede, disketimi sürücüye atın, Window-R'ye basın (çalıştırma iletişim kutusunu açmak için) ve a: \ up.bat yazın. ve bitinceye kadar okuyun.

Görüntüleme yazılımı satın almadan önce yeni makineleri (veya eski haline getirilmiş makineleri) çalıştırmak ve standart kurulumumuzu yapmak için başka bir senaryo oluşturdum. Daha önce, bu diski yerleştirmek için sıkıcı bir işlem yapıldı, birkaç şeyi birkaç kez tıklayın, birkaç kez sonra tıklayın, bekleyin ..., sonra biraz daha tıklayın, diskleri değiştirin, aynı şeyi yapın ... Diski takın, disket yerleştirin. .. komutunu çalıştırın. İstendiğinde diskleri değiştirin ... Ağ daha güvenilir olduğunda, yalnızca disketi yerleştirip komutu çalıştırmakla değiştirildi, yükleme dosyalarını benim için bir ağ sürücüsünden indirdi.


1

CMD Tüm Windows PC'lerde sadece küçük bir güç evi var. net user {samid} /domain hızlıca bana bir etki alanı hesabı hakkında bilmek istediğim istatistikleri hemen ve dsquery user -samid {samid}|dsget user -memberof -expand|dsget group -samid Bir etki alanı hesabına grup üyeliğini tekrar tekrar arayarak geri kalanı kapsar.

Bir bilgisayardaki tüm haritalanmış ağ konumlarını hızlıca arayabilirim: for /f "tokens=3" %f in ('net use ^|findstr \\') do echo %f

Veya partiler, derlemenin pratik olmadığı işlerde kullanılabilir.

@echo off 
echo This script will close Internet explorer then clear out your temp files
pause
taskkill /f /im iexplore.exe
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
"C:\Program Files\Internet Explorer\iexplore.exe"

IE geçici dosyaları temizlemek için bir araya koymak hızlı ve kirli bir toplu iş dosyası oldu. Bir yarasa dosyasını masaüstüne bırakmak ve daha sonra orada geçici dosyaların nasıl temizleneceğini açıklamaya çalışmak daha kolaydır.


Son olarak, bütün gün CMD'nin yararları ve faydaları hakkında devam edebildiğim için, komut dosyasının nasıl çalıştığı ve bilgisayarın komutları nasıl yorumladığı hakkında bana çok şey öğretti. CMD / Batch'i öğrenmeden önce Script ve Programlama ile gerçekten ilgilendiğimi öğrenmedim.


Düzenle:

Sadece somut bir CMD örneği C # 'dan daha etkilidir (Merhaba Dünya!)

C #

public class Hello1
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, World!");
   }
}

CMD

echo Merhaba, Dünya!

yığın

@echo Hello, World!
@pause  

Veya

@echo off
echo Hello, World!
pause

Basit görevler konusunda CMD ve Batch'in daha az ek yükü var.


Bu mmc.exe tarafından elde edilemedi mi?
ispiro

@ Ispiro herhangi bir görevi başarmanın sadece 1 yolu olduğunu ima eder. Seni temin ederim ama dsquery user -samid {samid}|dsget user -memberof -expand|dsget group -samid işlemek için 2-3 dakika sürer ~ 100 üyelik eğer mmc.exe ile yaparsam beni 30-40 dakika sürebilir
50-3

Soruma cevabınız: Looking up domain accounts info / network locations / clearing temp files of a running application. (CMD ile C # arasındaki bölüm sorum değil. Sadece kendimi aydınlatmak için yaptıklarımdan bahsettim.) Teşekkürler.
ispiro

@ispiro Az önce cmd'nin düşük olduğunu göstermek için referans olarak belirttim. Cmd'den elde edilebilecek her şey GUI ve vise virsa'da yapılabilir. Cmd'yi yoğun kullanmamın nedeni hepsi orada ve 100 farklı uygulamada ve ek bileşeninde değil. Hepsi kullanıcıya ve bir bilgisayarı nasıl kullanmak istediğine bağlı.
50-3
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.