使用批处理命令按特定大小和扩展名阻止复制文件

时间:2014-08-23 07:18:55

标签: batch-file cmd batch-processing

我是批处理命令的新手,在我尝试通过网络复制时遇到阻止某些文件大小和扩展名的问题。

例如:文件大小>如果有人尝试通过网络或本地复制,则会自动阻止5MB和扩展名* .mp3。

提前谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用扩展选项检查某些文件扩展名和大小。

此命令仅允许文件< 5MB且没有扩展mp3

for %f in (*.*) do if /I %~zf LEQ 5000000 if /I "%~xf" NEQ ".mp3" copy %f \\srv\share\%f

这是如何工作的?

在命令提示符下发出help if会显示可用选项:

  

如果启用了命令扩展,则IF更改如下:
  IF [/I] string1 compare-op string2 command
  compare-op可能是以下之一:

EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal
  

和/ I切换,如果指定,则表示不区分大小写的字符串   相比较。 / I开关也可以在string1 == string2表单上使用   IF。这些比较是通用的,因为如果string1和   string2都包含所有数字,然后是字符串   转换为数字并执行数字比较。

for命令允许迭代目录中的每个文件:

  

为一组文件中的每个文件运行指定的命令   FOR %variable IN (set) DO command [command-parameters]

  %variable  Specifies a single letter replaceable parameter.
  (set)      Specifies a set of one or more files.  Wildcards may be used
  command    Specifies the command to carry out for each file.
  command-parameters
             Specifies parameters or switches for the specified command.
  

要在批处理程序中使用FOR命令,请改为指定%%变量   %变量。变量名称区分大小写,因此%i不同   来自%I。

在帮助页面的末尾,我们找到了替换规则:

  

此外,FOR变量引用的替换已得到增强。   您现在可以使用以下可选语法:

...
%~xI        - expands %I to a file extension only
....
%~zI        - expands %I to size of file

将所有这些结合起来,可以得到上面的文件源过滤初始解决方案。