2016-03-31 36 views
3

Bir klasördeki tüm .csv dosyaları arasında yineleme yapılması ve her birini aşağıdakilerle yapması gereken bir toplu iş dosyası yazdım: Herhangi bir dosyayı üzerine yazarken, farklı bir klasörde MOVE/Değiştir'i solar.csv olarak yeniden adlandırın. Aynı adı, solar.csv kullanan bir hizmeti başlatın, 7,5 dakika bekleyin, servisi durdurun. Bu, klasördeki her bir .csv dosyası için yapılmalıdır. Her adımı da yaptığı gibi rapor etmeyi isterim. İşte şimdiye kadar benim kodudur:Bir toplu iş dosyasında hata ayıklama

@ECHO OFF 
CD "D:\PI Data Import\Data" 

For /R %%G IN (*.csv) DO (

MOVE /Y %%G.csv "D:\PI Data Import\solar.csv" 
ECHO "%%G.csv Moved" 
NET START RDBMSPI4 
ECHO "Service Started" 
ECHO "Waiting" 
TIMEOUT /T 450 /NOBREAK 
NET STOP RDBMSPI4 
Echo "%%G.csv Complete" 

) 

Benim komut sözdizimi doğru olmadığını bildirir, ancak tam olarak hangi bölümünün söylemez. FOR/R hattının biraz yanlış, belki MOVE komutunu ve muhtemelen komut bölümünde %% G'yi nasıl ele aldığımı kabul ediyorum.

Tek ihtiyacım olan bir sözdizimi kontrolü ve bu sunucu üzerinde çalışacağından bu yana çok fazla altın çok fazla test etmekten korkuyorum. Tüm yardımlar takdir edildi, Batch dosyaları üzerinde çalışma konusunda hiç tecrübem yok.

+2

Genel hata ayıklama işlemi için, hata oluşturulduğunda işlenmekte olan son komutu görebilmek için '@ECHO OFF' komutunu kaldırmanızı/yorumlamanızı öneririz. –

+1

CSV dosyalarınızdan herhangi birinde boşluk varsa, 'MOVE' komutunda bir hata alırsınız. Emin olmak için dosya isimleri koyduğunuzdan emin olun: '" %% G '' –

cevap

2

/R komutunu for komutundan kaldırırdım. Ayrıca, herhangi bir yerde %% g sonra .csv koymayın. .csv dosyalarının zaten .csv dosyaları oldukları için eklenmiş olacaklar.

Her CSW dosyası BTW'yi taşıdığınızda solar.csv dosyasının üzerine yazacaksınız. CSV dosyalarının solar.csv dosyasına eklenmesini isterseniz, bunları bu dosyaya yazmanız gerekebilir. Örneğin. size döngü önce

...

if exist solar.csv del solar.csv 

Ve döngü içinde

... Servis her solar.csv dosyayı işlemek için gidiyor ve o zaman sadece dosyanın üzerine sürece

type %%g >> solar.csv 

bir sonraki ile, bu durumda altın sizsiniz :)

+0

Girdi için teşekkürler! Önerilen değişiklikleri yaptım, ama aslında her hareket ettiğimin üzerine yazılmasını istiyorum./R'yi kaldırırsam, hala bu üst dizini yinelemeli olarak yürütür? Veri klasörü içindeki klasörlerdeki verileri bırakma ve bunu her bir klasördeki her şeyde çalıştırma yeteneğini istiyorum. – shilohln

+0

Başlangıçta bunu/R ile çalışmaya başaramadım, ama eğer bunu yapmanız gerekiyorsa ve sizin için iyi çalışıyorsa, devam edin, evet :) – ManoDestra

İlgili konular