Вчера я видел вопрос о том, как получить информацию о файловом пространстве. Я попробовал команду так:
FOR / F %% A IN ('dir c: \ ^ | findstr / rc: Adr') DO
эхо A: "%% A" B: "%% B" C: "%% C" D: "%% D"
Я подумал, что можно извлечь последнюю строку, начиная с моего местного языка с "Adr", твой, вероятно, "Directory". Это не совсем то же самое, потому что вчера я получил в качестве результата вывода саму команду: dir c: \ ^ | findstr / rc: Adr. Теперь я проверяю это снова в CMD и получаю это:
C:\>FOR %A IN (dir c:\ ^| findstr /rc:Adr) Do Echo A:"%A"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"dir"B:"%B"C:"%C"D:"%D"
A:"dir"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"c:\"B:"%B"C:"%C"D:"%D"
A:"c:\"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"|"B:"%B"C:"%C"D:"%D"
A:"|"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"findstr"B:"%B"C:"%C"D:"%D"
A:"findstr"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"/rc:Adr"B:"%B"C:"%C"D:"%D"
A:"/rc:Adr"B:"%B"C:"%C"D:"%D"
C:\>FOR %A IN ('dir c:\ ^| findstr /rc:Adr') Do Echo A:"%A"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"'dir"B:"%B"C:"%C"D:"%D"
A:"'dir"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"c:\"B:"%B"C:"%C"D:"%D"
A:"c:\"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"|"B:"%B"C:"%C"D:"%D"
A:"|"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"findstr"B:"%B"C:"%C"D:"%D"
A:"findstr"B:"%B"C:"%C"D:"%D"
C:\>Echo A:"/rc:Adr'"B:"%B"C:"%C"D:"%D"
A:"/rc:Adr'"B:"%B"C:"%C"D:"%D"
C:\>dir c:\ | findstr /rc:Adr
Adresářů: 6, Volných bajtů: 1 447 161 856
C:\>
Следующая ситуация, с которой у меня проблема:
Если я хочу напечатать имена файлов:
@Echo off
FOR %%F IN (dir *.inf) DO (
echo %%F
)
Первым элементом в выводе является dir, а затем файлы. Что я делаю не так, чтобы получить не саму команду, а запрошенные мной данные?