楼主:
LPH66 (-6.2598534e+18f)
2017-12-17 04:23:40※ 引述《sanbis (方正)》之铭言:
: 想使用 rclone 来检查 google drive 资料夹中档案的数量
: 然后输入到 txt 档案中
: 而 cmd 下指令目前如下
: 先记录要执行的指令
: 然后执行指令并将结果记录下来
: echo rclone size GD1:/备份/xxxxxxx >> size.txt
: rclone size GD1:/备份/xxxxxxx >> size.txt
: 目前确定只有资料夹名称(红色)会有变动
: 名称非固定
: 但是可以先列出清单
: 像这种情况下不知道能不能写成批次档
: 根据清单逐条加载资料夹名称来执行命令?
for /f 可以达成你要的功能; 以下截取自 for /? 的说明
====
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
或,如果使用 usebackq 选项:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ('string') DO command [command-parameters]
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]
file-set 可以是一或多个档案名称。继续进行 file-set 中的下个
档案之前,都已开启、读取及处理过每个档案。处理程序包括读取
档案、将它分割成独立的文字行,然后将每一行剖析成零或多个语
法。使用已设成找到之语法字串的变量值,呼叫 For 循环的内容。
依照默认,/F 会从每个档案的每一行传送第一个以空格分隔的权
杖。空白行会被略过。
====
因为你是资料已经在清单档案里了, 所以直接使用无引号的版本即可
如说明所说, 它是逐行读取资料并设进变量里
因此以你的例子一个可能的写法是:
for /f %f in (listfile.txt) do (
echo rclone size GD1:/备份/%f >> size.txt
rclone size GD1:/备份/%f >> size.txt
)