Windows komut istemiyle txt listesinden metin ayıkla


2

Bunun gibi bir metinde bir listem var

AAA 1234561
BBB12 66698732
CCCCC 5878471
DD131 262554158

ve ve aşağıdaki gibi bir Dizin var

DirectoryA/AAA
DirectoryA/BBB12
DirectoryA/CCCCC
DirectoryA/DD131

Bir isim veren bir txt dosyası oluşturmak istiyorum, onun klasörünün ilgili kodunu içeren id.txt dosyasını çağırmasını sağlar.

So the DirectoryA/AAA/id.txt contains 1234561
DirectoryA/BBB12/id.txt contains 66698732 and so on. 

Satırı / p ile çıkarmaya çalıştım, ancak satırın tamamını yalnızca kimliği değil kopyalar.

Yanıtlar:


4
for /f "tokens=1-2" %%A in (x.txt) do echo %%B > DirectoryA\%%A\id.txt

Tartışma:

Yazarak birçok yararlı bilgi edinebilirsiniz. FOR /? Bir Komut İstemi'ne Özellikle,

FOR /F  [" seçenekleri "]  % değişken  IN  ( Dosya-set )  DO komuta [ Komut parametreleri ]

Parantezler arasında belirtilen dosyayı veya dosyaları okur ( file-set ) ve her çizgiyi belirteçlere ayrıştırır. tokens=1-2 o options Her satırda ilk ve ikinci kelimeleri istediğinizi söylemek için dize. %%A belirtir %%A ilk kelimenin okunacağı değişkendir; dolaylı / otomatik olarak ikinci kelime girer %%B. Sonra echo komutu ile yürütülür %%A ve %%B dosyadaki iki kelimeye ayarlayın.

Not: Bu komutu doğrudan Komut İstemi'ne giriyor olsaydınız, %A ve %B, ancak aynı şeyi bir komut dosyasında (toplu iş dosyası) yaptığınızda yüzde çift işaret kullanmanız gerekir.


Çalışması harika, lütfen bana tokenleri = 1-2 ve bu emrin arkasındaki düşünceyi anlatabilir misin? şimdiden teşekkürler
Sonamor

Umarım seni sökebilirim Scott, açıklama için teşekkürler.
Sonamor
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.