Varsayılan olmayan cmd.exe'yi kullanmak için bat dosyasını zorla

Bazı script nesnelerini otomatik olarak işlemek için bir .bat dosyası yazıyorum, böylece her çalıştırmak istediğimde yarım düzine komut argümanları yazmak zorunda kalmam.

Toplu dosyadan bir komut dosyası çalıştırmam gerekiyor

@call ..\Database\scripts\runscriptupdates.vbs

Ancak komut dosyası yalnızca komut istemini kullanarak çalışır.

C:\Windows\SysWOW64\cmd.exe

Varsayılan olarak, yarasa dosyası sistemde cmd.exe'yi kullanır.

C:\Windows\System32\cmd.exe

Vb dosyasını çalıştırmak için bu cmd.exe kullanmak için toplu iş dosyasını zorlamak için bir yolu var mı? Web'i yaklaşık bir saattir tedirgin ediyordum ve (şimdiye kadar) yardımcı olan bir şey bulamadım.

Syswow64'ü "start ..." ile çalıştırmayı denedim, ancak argümanları peşinden almıyor gibi görünüyor.

Çok teşekkürler Neil

3

3 cevap

Deneyebilirsin:

%windir%\SysWoW64\cmd.exe /c mybatch.bat

Bu, toplu işi 32 bitlik bir komut isteminden çalıştıracaktır. Böylece, vb'lere yapılan çağrı da 32 bitlik bir komut isteminden gelecektir.

3
katma
Bu hile yapar, yeni pencereyi açar ve her şey gerektiği gibi çalışır. Bir parti dosyasında yapabilmek çok güzel olurdu, bu yüzden bir cevap almadan önce bir gün boyunca soruyu açık bırakacağım. Yardım için tekrar teşekkürler!
katma yazar Neil, kaynak

I also had this problem, and I found the way to solve it.
You just need to change System Variables.

Denetim Masası 'na gidin Sistem » Gelişmiş Sistem Ayarları » Ortam Değişkenleri .

Find the variable ComSpec, then just click Edit... and change the path to "C:\Windows\SysWow64\cmd.exe"

1
katma

Bu bir satırı toplu dosyanıza yazmayı deneyin.

% windir% \ SysWoW64 \ cmd.exe/c ["] cscript [ komut dosyası adı ] [ ana makine seçenekleri ] [ komut dizisi argümanları ] [" ]

Nerede:

  • komut dosyası adı, dosya adı uzantısı ve gerekli yol bilgileri de dahil olmak üzere komut dosyasının adıdır.

  • ana makine seçenekleri, çeşitli Windows Komut Dosyası Sistemi özelliklerini etkinleştiren veya devre dışı bırakan komut satırı anahtarlarıdır. Ana bilgisayar seçeneklerinden her zaman önce iki eğik çizgi (//).

  • ) gelir.
  • komut dosyası bağımsız değişkenleri, komut dosyasına iletilen komut satırı anahtarlarıdır. Komut dosyası argümanları her zaman bir eğik çizgiden önce gelir (/).

Örnek:

% windir% \ SysWoW64 \ cmd.exe/c "cscript VoltageDrop.vbs /"Campbell.sin "" L08 " "

Not: Bu satırda herhangi bir ana bilgisayar seçeneğini kullanmıyorum. Bu komut dizeyi yürütür

cscript VoltageDrop.vbs /"Campbell.sin "" L08 "

32 bit komut isteminde bir komut olarak.

0
katma