gpt4 book ai didi

windows - 在批处理脚本中执行目录列表时速度很慢

转载 作者:可可西里 更新时间:2023-11-01 13:29:15 26 4
gpt4 key购买 nike

你好 StackOverflow 成员!

我正在尝试运行以下命令:

REM the below line lists the folder names that are to be read
FOR /F "TOKENS=* DELIMS=" %%d in (%start_dir%\folder_list.txt) DO (
ECHO Entering into: %%d Directory
REM The below line lists the folders and all of it's subfolders. It than outputs it to a file.

FOR /F "TOKENS=* DELIMS=" %%e in ('DIR /s "%work_dir%\%%d"') DO (
ECHO %%e>>%start_dir%\tmp_folder\%%d.size
)
)

上面的代码有效。

问题是:如果我的文件夹只有几 GB,那没问题。

如果我有一个超过 100GB 的文件夹,脚本将需要大约一个小时来输出 DIR/S>>%%d 命令。

当我在大约 150GB 的单个文件夹上运行时: Dir/s "150GB_Folder">>dir_ouput_file.txt 它在大约 6-10 秒内完成。

我的问题是:为什么从脚本中输出 DIR/S>>whatever.txt 需要一个小时,而当它不在脚本中时只需要几秒钟?

提前致谢!

最佳答案

这是 for 中的一个错误,其中使用命令解析大量行会导致巨大的延迟。
解决方案是用这些信息创建一个文件,然后读取该文件。

REM the below line lists the folder names that are to be read
FOR /F "TOKENS=* DELIMS=" %%d in (%start_dir%\folder_list.txt) DO (
ECHO Entering into: %%d Directory
REM The below line lists the folders and all of it's subfolders. It than outputs it to a file.

DIR /s "%work_dir%\%%d" >%temp%\temp.tmp

FOR /F "TOKENS=* DELIMS=" %%e in (%temp%\temp.tmp) DO (
ECHO %%e>>%start_dir%\tmp_folder\%%d.size
)
del %temp%\temp.tmp
)

关于windows - 在批处理脚本中执行目录列表时速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com