Bu sorunun burada zaten bir cevabı var:
Windows XP'de, bir "siyah pencere" olmadan bir kısayol üzerinden bir toplu iş (.bat veya .cmd) dosyasını çalıştırabilir miyim?
Bu sorunun burada zaten bir cevabı var:
Windows XP'de, bir "siyah pencere" olmadan bir kısayol üzerinden bir toplu iş (.bat veya .cmd) dosyasını çalıştırabilir miyim?
Yanıtlar:
Örneğin, "testing.bat" ı toplu iş dosyanızın adıyla değiştirdikten sonra, hidecmd.vbs dosyasını wscript olarak kaydedin.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
İkinci parametre oShell.Run
olan intWindowStyle
programın pencere ve sıfır değerine görünümünü gösteren değeri gizli pencere içindir.
Referans burada http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
.bat
Bu yöntemi kullanarak dosyayı administartor olarak nasıl çalıştırabilirim ?
Bu sadece Shaji'nin cevabının basitleştirilmesidir. Toplu iş komut dosyanızı aşağıdaki gibi bir VBScript (.vbs) komut dosyasıyla çalıştırabilirsiniz :
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Bu toplu iş dosyanızı hiçbir komut penceresi gösterilmeden yürütecektir.
.bat
Bu yöntemi kullanarak dosya yönetici olarak nasıl çalıştırılır ?
Yalnızca "Windows Komut Dosyası Kullan" yanıtlarını genişletmek için (zaten yerleşik olduğundan en iyi olduğunu düşündüğüm) yanıtlarını tek bir sarmalayıcı komut dosyası kullanarak ve "gerçek" toplu iş dosyasının adını bir parametre olarak geçirerek yapabilirsiniz. Ek parametreler toplu iş dosyasına geçirilir.
If WScript.Arguments.Count >= 1 Then
ReDim arr(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
Arg = WScript.Arguments(i)
If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
arr(i) = Arg
Next
RunCmd = Join(arr)
CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If
Öyleyse, örneğin yukarıdaki dosyayı bir NoShell.vbs
yere kaydedin, sonra arayın:
NoShell.vbs c:\foo\my_batch_file.bat
Son olarak, bunu .vbs dosyasını (Visual Studio'daki bir "Dış Araçlar" gibi) anlamayan bir yerden çalıştırmak istiyorsanız C:\Windows\System32\wscript.exe
, vbs dosyasıyla ilk parametresi olarak çağırmak isteyeceksiniz ve ikinci olarak toplu iş dosyası.
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
.
"C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
. Yol için ne denersem deneyeyim - her şey etrafında çift tırnak, boşluğun% 20'si veya bu ikisinin bir kombinasyonu, hiçbir şey işe yaramaz. Bana dosyanın bulunamadığını ya da hiçbir şey olmadığını söyleyen bir hata mesajı alıyorum. Bu benim tarafımdaki kullanıcı hatası, kısayollar için Hedef alanıyla ilgili bir Windows sınırlaması ya da boşluklu dosya yollarını düzgün işlememesi gereken vbs komut dosyasındaki bir sorun mu?
'/ B' seçeneğiyle başla kullanın . Örneğin:
@echo off
start /B go.bat
start /b
programı, yeni bir program oluşturmak yerine, şu anda atanmış olan konsolda çalıştıracaktır. Partinin cmd ile çalışması gerektiğinden zaten yeni bir tane alacaksınız (ki bu da [sürpriz] bir konsolu açar).
SYSTEM
C / C ++ 'da olduğu gibi) toplu iş dosyalarını diğer uygulamalardan başlatmak için çok kullanışlıdır .
cmd /c foo.cmd
. start
Bu senaryolarda kesinlikle kullanmaya gerek yok ve bunun system
lehine kullanılmaması gerektiğini savunuyorum CreateProcess
. Bir toplu iş dosyası başlatarak, zaten bir platforma bağımlısınızdır, ayrıca iş için daha iyi araçları kullanabilirsiniz.
cmd /c
önce hiç duymadım . Cmd komutu, benim durumumda gerekli olan şeydi, fakat şimdiye kadar bulduğum tüm
start /b go.bat
Yeni bir konsol tahsis etmeyecektir (örneğin, conhost.exe örneği - veya Windows 7'den önce csrss.exe'deki bir konu). Ancak toplu iş komut dosyası aynı konsola eklenen yeni bir cmd.exe örneği ile çalıştırıldığından dolayı karışıklık yaratacaktır . Kabuğun her iki örneği de, genellikle alternatif olarak konsoldan girdi okumak için rekabet edecektir. Bu ihtiyacı /w
(örneğin start /b /w go.bat
kullanmaya benzer ikinci örnekte, beklemek sırayla) cmd /c
kullanılıyorsa system
. Ayrıca, arıyorsanız CreateProcess
, go.bat
doğrudan çalıştırın . Buna gerek yok cmd /c
.
Ücretsiz GPL açık kaynak "Gizli İşlem Oluştur"
http://www.commandline.co.uk/chp/
Microsoft Security Essentials ve muhtemelen diğer birçok virüs / kötü amaçlı yazılım tarayıcıları, chp.exe dosyasını çalıştırılabilir, virüs olarak görür, çünkü virüslerin yaptığı gibi, bir pencereyi veya görev çubuğu düğmesini göstererek belirlediğiniz programı gizler.
Bu bir virüs değil. Örneğin hedef işlemin görev yöneticisinde görünmesini engellemez. Ve tabii ki kaynak kodu dahil edilmiştir, böylece çok küçük olduğunu ve hiçbir şey yapmadan başka bir program yapmadan çalıştığını görebilirsiniz.
Dahil edilen chp.exe dosyasının gerçekten o kaynaktan oluşturulduğuna güvenmenize gerek yok. Dahil chp.exe atın ve kaynağından kendi derlemek ve bunu yapmak için gerekli tüm araçları bile ücretsiz ve indirilebilir.
Ayrıca sadece .bat veya .cmd dosyasına bir kısayol oluşturabilir, ardından kısayolu sağ tıklatın, Özellikler, Kısayol sekmesi, Çalıştır: Küçültülmüş. Sonra zamanlanmış görevlerde doğrudan .bat / .cmd dosyası yerine kısayolu kullanın. Bu, bir pencerenin açılmasını engeller, ancak bir görev çubuğu düğmesi görünmeye devam eder.
AutoIt gibi pencere komut dosyası kullanabilirsiniz .
Örnek olarak, bunu AutoIt script editörüne yazmanız yeterlidir. Oldukça basit
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Bir döngü içinde çalıştırmak istiyorsanız,
$x=0
Do
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Sleep(5000)
Until $x = 1
.Exe olarak derleyin - ve bitirdiniz.
Aynı şekilde, AutoHotkey'de :
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
Gizli Başlat'ı kullanın (20 YTL'dir)
Gizli Başlat - Konsol Penceresi veya UAC İstemi Olmadan Uygulamaları ve Toplu Dosyaları Çalıştır
Konsol uygulamaları ve toplu iş dosyaları düzenli olarak Windows başlangıcında veya bir zamanlamayla çalıştırılır. Bunun asıl sakıncası, her uygulamanın ekranda titreyen bir konsol penceresi açmasıdır. Gizli Başlat (veya Hstart), konsol uygulamalarını ve toplu iş dosyalarını arka planda herhangi bir pencere olmadan çalıştırmanıza, Windows 7 ve Vista'da UAC ayrıcalık yükseltmesini ele almanıza, paralel veya eşzamanlı olarak birden fazla komut başlatmanıza ve daha pek çok şeye olanak sağlayan hafif bir komut satırı yardımcı programıdır .
Ekstra program kullanmadan basit bir çözüm.
İyi şanslar!