簡體   English   中英

我需要一個批處理文件來生成帶有* only *文件名的列表

[英]I need a batch file to generate a list with *only* file names

我需要它在Win10和Win7機器上工作。 如果我可以使用它,我將制作一個批處理文件。

Winkey, "cmd"
cd "e:\media\trainingvids"
dir *.* /s /b /a -d > c:\temp\dork.txt

因此,要說明顯而易見的內容,但請確保我已理解,請打開命令提示符,更改為正確的目錄,並列出所有文件的目錄(包括子目錄(/ s),沒有頁眉或頁腳)因此,使用“裸露”格式(/ b),並嘗試不顯示目錄(/ a -d)–然后將該目錄(>)發送/管道到我指定要命名和創建的文件(dork.txt)在我的c:中已經存在的臨時目錄(\\ temp)中。

問題是它不起作用。 我無法找到一種不包含完整路徑以及文件名的方法。 我需要微調語法。 或者,也許我把所有事情都弄錯了,不能用這種方式完成。

我的基本批處理文件看起來可以做什么?

for /f "delims=" %%a in ('dir /s/b/a-d') do echo %%~nxa

應該完成那個任務。

您將需要for /F命令來完成此操作:

> "D:\temp\dork.txt" (
    for /F "eol=| delims=" %%F in ('
        dir /B /S /A:-D "E:\media\trainingvids\*.*"
    ') do @(
        echo(%%~nxF
    )
)

您在dir命令行中的/A-D之間放置了一個空格 ,必須將其刪除。

由於我在dir命令中說明了目標目錄的完整路徑,也說明了輸出文件的完整路徑,因此您可以將此腳本保存在任何位置,並可以在任何地方運行它。

如果您可以容忍雙引號,則此批處理文件將很好地工作。

set myPath=c:\temp
set myMask=*.pdf
set myLog=c:\temp\myLogFile.log
FORFILES /P %myPath% /S /M %myMask% /C "CMD /C ECHO @file >> %myLog%"

更改值以滿足您的需求。

您幾乎可以使用:

dir /s /w /a-d | find "."

唯一的缺點是,您會在列中獲得文件名,並且可能會獲得一個Volume行,可以使用另一個find過濾器將其刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM