我有一个文本文件,其中包含:
%userprofile%/Desktop/FileFolder1
%userprofile%/Desktop/FileFolder2
%userprofile%/Desktop/FileFolder3
等。 我希望它采取每个文件夹并压缩它们。然后我需要它将zip移动到一个特定的目录(E:/),我希望它把版本号(1.0,1.1,1.2等),如果光盘没有足够的空间,然后返回一个错误,如:
echo.Error: Not enough space on disc.
当它起作用时:
echo.Success.
pause
exit
所以,如果我运行两次,光盘应该有:
E:/FileFolder1 1.0.zip
E:/FileFolder2 1.0.zip
E:/FileFolder3 1.0.zip
E:/FileFolder1 1.1.zip
E:/FileFolder2 1.1.zip
E:/FileFolder3 1.1.zip
只要它不是太大。这就是我想要的所有事情。 注意:我会手动将文件夹添加到文本文件中。
仅供参考,我确实尝试过研究,一切都要么长得太长,要么我必须下载一些扩展包或其他什么。
编辑:我也想要:
echo.Error: No disc inserted.
如果没有插入光盘。
答案 0 :(得分:0)
要迭代文本文件的内容,请阅读HELP FOR
并在命令行中试验...
FOR /F "tokens=*" %a IN (file.txt) DO @ECHO %a
要设置增量文件名,请在循环中尝试计数器。阅读HELP SET
并尝试
set cnt=0
:again
set /a cnt+=1
if exist %dest%\%name%.%cnt%%ext% goto :again
echo copy %src% %dest%\%name%.%cnt%%ext%
用于检查是否已插入磁盘,您可能需要尝试
IF EXIST E:\NUL ECHO E:\ exists!
要检查磁盘中是否有足够的可用空间,您可以使用wmic
。使用findstr
过滤输出,并将结果“管道”为具有FOR
的变量。试验..
FOR /F "tokens=1" %i IN ('wmic logicaldisk get name^,freespace^|findstr /I "E:"') Do @echo free = %i
然后检查文件是否适合,将上一个命令的结果与文件大小进行比较,请参阅HELP CALL
(解释了〜z修饰符),然后尝试
IF %free% GEQ %~z1 ECHO %1 fits in E: [%free%^>%~z1]
我把所有这些碎片放在一起作为练习留给你。