我正在尝试自动化一个将所有内容(目录,子目录,文件等)存储在.txt文件中的进程。我想出了这个:
cd "D:\sources\SVN_WorkingCopy\"
dir /s /b>filelist.txt
将上述内容放入.bat文件并手动运行时,它可以正常工作并创建.txt文件。但是,当我将其包含在Windows计划任务中时,它不会执行任何操作。任何人都可以帮忙,让这个工作吗?
谢谢!
答案 0 :(得分:1)
如果您真的想分两行进行,那么您需要确保使用/D
选项来更改驱动器:
CD /D "D:\sources\SVN_WorkingCopy"
Dir /S /B > "filelist.txt"
或者,您可以使用单行而不更改当前工作目录:
Dir /S /B "D:\sources\SVN_WorkingCopy" > "filelist.txt"
或者使用不同的命令:
Where /R "D:\sources\SVN_WorkingCopy" * > "filelist.txt"
此外,您需要注意,当作为计划任务运行时,工作目录为%SystemRoot%\System32
,默认情况下为写保护,(取决于权限)。因此,除非您提供可访问的位置,否则该命令将尝试将其输出发送到那里的文件:
> "C:\Users\kalinkula\Desktop\filelist.txt"
您可以将输出发送到评估目录D:\sources\SVN_WorkingCopy\filelist.txt
中的文件,只要您不介意该文件出现在其自己包含的列表中。
这些答案还假设在运行脚本/命令时映射和/或可用D:
。
答案 1 :(得分:0)
这可能只是一个FYI,但您也可以使用tree
进行结构化输出
tree /f /a "D:\sources\SVN_WorkingCopy" > filelist.txt
将导致文件结构类似于:
D:.
├───e-shopper
│ └───Eshopper
| └───temp folder
| └───Performance Report Table.xlsx
| └───Sales Document.docx
├───test Folder
│ └───Hire Freelancers
| └───Performance Report Table.xlsx
| └───Sales Document.docx
└───Some other Directory with no subs or files