2016-03-28 16 views

Antwort

1
for /f "tokens=*" %i in ('dir /b /a-d') do echo %~ni 

es in einer Batch-Datei zu verwenden, die doppelte Prozent-Zeichen:

for /f "tokens=*" %%i in ('dir /b /a-d') do echo %%~ni 
+0

wenn versucht wird, TXT-Datei mit> f.txt machen, gibt es nur den letzten Dateinamen. – paulcab

+1

Wenn Sie nur '> f.txt' hinzufügen, wird die Datei überschrieben, und die Datei enthält nur den Nachnamen. Verwenden Sie entweder '>> f.txt' (append) oder schließen Sie den Befehl in Klammern ein:' (für/f .... echo %% ~ ni)> f.txt', um die vollständige Liste zu erhalten. – Stephan

+0

oh danke funktioniert gut. – paulcab

0

In Powershell, die so sein würde:

ls -file | % { $_.basename }

Wenn Sie dies ausführen möchten von einer cmd-Shell können Sie dies tun: für

powershell.exe -command { ls -file | % { $_.basename } }

Powershell rockt Dinge wie diese, also, wenn Sie wirklich nicht einfach alte CMD.exe verwenden müssen, würde ich vorschlagen, dies zu verwenden.

+0

oh danke. aber ich weiß nicht, wie man Powershell verwendet. Ich habe die Antwort für die Verwendung in cmd. – paulcab

+0

check it out, wenn Sie die Zeit haben, wird es Ihr Scripting Leben viel einfacher machen :) – n3wjack