Bir toplu iş dosyası bağımsız değişkenindeki yüzde işareti (% ve %%) ne anlama geliyor?


11

Sanırım bir şey kaçırıyorum çünkü bunun ne anlama geldiğini bulamıyorum.

Misal:

for /D %%A in (*) do "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"

Bu satırın, 7ziptek tek klasörleri sıkıştırmak için bir komut satırı sürümü kullanması gerekiyordu , ancak %%Abu bağlamda ne anlama geldiğini bilmiyorum .



1
Komut satırı ve banyo dosyası karıştı. Üstteki işaret değiştirildi.
Jim Kieger

Yanıtlar:


12

forDaha sonra sorguda kullanılmak üzere değişkenleri aktarabilirler böylece komut bir yer tutucu ihtiyacı, bunun tutucuyu kullanmak anlatıyorsun %A, sen kullandığı testere kod nedenini %%Abir toplu iş dosyası içinde (ı varsayalım size bunu nerede buldum) çünkü %özel bir anlamı vardır, bu yüzden iki kez yapmanız gerekir, böylece komuta iletilmek için %%tek bir haline dönüşür%for

Komutun yaptıklarını gerçekten ayırmak için, komutun iki kısmı vardır:

 for /D %%A in (*) do .....

Bu bölümün söylediği, geçerli klasördeki her klasör için %%A, şu anda işlenen klasörün adıyla değiştirilen aşağıdaki komutu yürütür .

..... "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"

Bu bölümün söylediği, komutu "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"yerine getirmek ve ikisini %%Aişlediğimiz mevcut kayıtla değiştirmek .


Sadece nitpick için - for döngüsündeki / D, * joker karakterini "bu klasördeki her dosya ve her alt klasörde" değil, dizinlerle sınırlar (Komut Uzantıları etkin olduğu varsayılarak).
ernie

@ernie haklısın, yardım sayfasındaki / R anahtarına bakıyordum, cevabımı düzelttim.
Scott Chamberlain

Bunun için teşekkür ederim, bunun ne kadar noobish göründüğünü gösterir, ancak birkaç çevrimiçi kılavuzdan kazmak zorunda olduğum oldukça arkaik şeyler.
Jim Kieger

0

Bu bir değişken.

Bu örnekte , bir FOR döngüsünün dizin seçeneği kullanılır, dizinler üzerinden yinelenir ve %% A dizinine atanır.

Bu aynı zamanda bir komut satırı örneği değil, bir toplu iş dosyası örneğidir. Toplu iş dosyalarında %% A kullanmanız gerekir, komut satırındayken yalnızca% A kullanırsınız.


0

Senaryonuzda, %% A, "for" döngüsünün yinelediği (/ D dizinleri gösterir) için bir yer tutucudur. Döngünün her yinelemesi, %% A dizinlerden biridir.

Toplu kodda% yerine %% göreceksiniz. Komut isteminizde %% yerine% kullanıldığını göreceksiniz.

Öyleyse, bir toplu iş dosyası kodu üzerinden bir komut istemine kopyalar ve bunu %% kullanıldığında çalıştırırsanız hata verir ve bunun tersi olur.

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.