FTP toplu iş dosyası komut satırından çalışıyor, ancak zamanlanan görevden değil


3

Windows zamanlanmış bir görevin bazı dosyaları sunucuma yükleyecek bir FTP toplu iş dosyası yürütmesini istiyorum. Aşağıdaki argümanı komut satırından çalıştırırsam, başarılı bir şekilde yürütülür.

ftp -i -s:C:\<path-to-file>\ftp.dat

Bunu zamanlanmış bir görevde çalıştırıp çalıştırdığımda, her zaman oluşturulan görev sürecine geçiyor ve böyle kalıyor; tamamlamaz veya başarısız olmaz. Bunu put komutları olmadan da denedim ve hala dosya aktarımı bekliyormuş gibi yapmıyor.

Görevi Windows Vista'daki görev zamanlayıcı GUI'si ile oluşturuyorum . Genel sekmesi altında, kullanıcının oturum açıp açmadığını ve ayarlanan en yüksek ayrıcalıklara sahip olup olmadığını çalıştırdım.

Eylemlerin altında çalışacak şekilde ayarlanmıştır C:\\Windows\System32\cmd.exe.

Ve argüman

ftp -i -s:C:\<path-to-file>\ftp.dat

Ftp.dat dosyası şöyle görünür:

open ftp.mysite.co.uk
myUsername
myPassword
put C:\<path-to-file>\file.xml
put C:\<path-to-file>\file2.xml
bye

Bunun neden komut satırından manüel olarak gayet iyi çalıştığını anlamıyorum, ancak zamanlanmış görevden değil.


Henüz yapmadıysanız, çözmenize yardımcı olacak bazı yardımcı ipuçları için bu yazıya göz atın: superuser.com/questions/1005192/… İsterseniz daha fazla yardım etmekten memnuniyet duyarım, öyleyse beni tekrar etiketleyin.
Pezevenk Suyu BT

Yanıtlar:


0

Ftp komutunu çalıştırmak için cmd.exe parametresi olarak "/ c" eklediğinizde işe yaraması gerekir:

C:\Windows\System32\cmd.exe
/c ftp -i -s:C:\<path-to-file>\ftp.dat

Bu 'bütün' şeyi komut satırında da deneyebilirsiniz:

cmd /c ftp -i -s:C:\<path-to-file>\ftp.dat

"/ C" olmadan sadece konsol içindeki bir konsolu açar, komutu çalıştırmayı not edin.


cmdDoğrudan ftp'yi çalıştırabileceğiniz zaman başlatmak için bir neden var mı ?
James Snell

Doğrudan çalışan farklı komutlarla ilgili sorun yaşadım; cmd'den geçirilerek engellenebilirdi. Özellikle ftp ile değil (ve denemedim), ancak bunun için benzer nedenleri olduğunu ve cevabımda mümkün olduğunca az değişiklik yapmak istediğini varsaydım.
Acrklor

0

Önerim, zamanlanmış bir görevde bir VBScript betiği çalıştırılacaktı :

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "C:\Windows\System32\ftp.exe -i -s:C:\<path-to-file>\ftp.dat", , True

Zamanlanmış komutları denemekte VBScript komut dosyalarını zamanlarken her zaman çok daha fazla şansım oldu.


0

Bir UI ile çalıştırılmadığında ortamın bazı bölümleri mevcut olmadığından, hala bir izin veya dosya erişim sorunu var gibi gözüküyor. Nerede gittiğini bilmediğimiz için bir dosya veya yolun bulunmaması muhtemeldir ...

Yapılacak en iyi şey ftp, hata olup olmadığını görmek için çıktının kaydını tutmaktır. Bunun gibi gelecekteki problemlerin olup olmadığını yine de gözden geçirmeniz yararlı olacaktır:

ftp -i -s:C:\<path-to-file>\ftp.dat >c:\ftp.log

Günlük dosyasını koyabilirsiniz ancak herhangi bir nedenden dolayı bu klasöre erişemiyorsanız, bir günlük sağlamaz, bu nedenle kökün altında tutmanın en iyisi olduğuna karar verene kadar. Bu sorunu çözdükten sonra daha uygun bir yere taşıyabilirsiniz.

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.