我需要它才能在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)中问题是它不起作用。我无法找到一种方法来不包括完整路径和文件名。我需要用语法轻推一下。或者也许我已经把它弄错了,不能这样做。
我的Basic批处理文件可以做什么?
答案 0 :(得分:1)
for /f "delims=" %%a in ('dir /s/b/a-d') do echo %%~nxa
应该完成这项任务。
答案 1 :(得分:1)
您需要for /F
命令来完成此任务:
> "D:\temp\dork.txt" (
for /F "eol=| delims=" %%F in ('
dir /B /S /A:-D "E:\media\trainingvids\*.*"
') do @(
echo(%%~nxF
)
)
您在/A
命令行-D
和dir
之间放置了一个空格,必须将其删除。
由于我在dir
命令中声明了目标目录的完整路径以及输出文件,因此您可以将此脚本保存在任何位置并从任何位置运行。
答案 2 :(得分:1)
如果您可以容忍双引号,则此批处理文件可以正常运行。
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%"
改变价值观以满足您的需求。
答案 3 :(得分:1)
你几乎在那里:
dir /s /w /a-d | find "."
唯一的缺点是你在列中得到文件名,可能还有一个Volume行,你可以用另一个find过滤器删除它。