Bu sözdiziminde Hata bulamıyor (Forfiles toplu ifadesinde If if)


1

Ne denersem deneyeyim, win7 64-bit makinemde bir toplu iş dosyasında aşağıdaki satırı çalışamıyorum:

forfiles /P "I:\testroot" /C "CMD /C if /i @FILE==testung.txt del /s @FILE"

Kod çalışır, hata gösterilmez ancak testung.txt dosyası silinmez.

Birisi MS’in resmi sözdizimi ile ilgileniyorsa:

http://technet.microsoft.com/de-de/library/cc753551%28v=ws.10%29.aspx

Peki sorun nedir?


Ben: \ Testroot TN makalesine göre, tırnak içinde olmamalıdır
Wutnaut

önemli değil, zaten denedim ..
user54512

'@FILE' hakkında daha fazla bilgiyi nereden bulabilirim, googlefu'm çalışmıyor
Wutnaut

makalesinde yukarıdaki linke altında hepsi @Variables açıklamak bir bölüm burdan bayagi (bu gerçekten değişkenler tür it görünüyor?)
user54512

Yanıtlar:


2

Birkaç tırnak işareti kaçırdın ...

Olan şey şu ki @FILE, çift tırnak içine alınmış dosya adını döndürür, bu nedenle IF-ifadesi karşılaştırmasında bu şekilde başvuru yapmanız gerekir.

Bunu yaparak forfiles /P "I:\testroot" /C "CMD /C echo @FILE"ve bunun testung.txtgibi yankılandığını görerek tanık olabilirsiniz "testing.txt".

Bir dize içinde çift tırnak kullanmak için (dize sınırlayıcı olarak değil) a ile kaçmanız gerekir \.

Öyleyse, bir kere yaptıktan sonra işe yaramalı:

forfiles /P "I:\testroot" /C "CMD /C if /i @FILE==\"testung.txt\" del /s @FILE"

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.