使用随机数字名称将文件复制到另一个目录

时间:2017-07-22 12:06:01

标签: batch-file

我需要你的帮助。我尝试将几个文件复制到一个带有随机数字名称的文件夹,例如:

xcopy /Y .\*.* .\new\%random%%random%%random%.*

比得到这个输出:

.\error2.exe
.\icon_error.ico
.\icon_static.ico
.\opsec.exe
.\static2.EXE
5 File(s) copied

当我对dir /B目录执行new命令时,我明白了这一点:

6263226566221.exe
6263226566221.ico

所以基本上缺少3个文件,我尝试在没有/Y参数的情况下再次运行它并且它问我Do you want to overwrite the existing file?

如何跳过这个问题,我需要一个简单,轻量级的解决方案来解决这个问题!
谢谢。

1 个答案:

答案 0 :(得分:0)

此批处理文件会将当前文件夹中的每个文件xcopy复制到.\new,不包括其自身 新名称将是指定常量长度的随机数(必要时填充前导零)

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set Nulls=00000000000000000000
Set Len=10
For %%A in (*) Do (
  Set Num=%Nulls%!Random!!Random!!Random!!Random!
  Echo xcopy /Y "%%A" ".\new\!Num:~-%Len%!%%~xA"
)
Pause

如果输出看起来没问题,请删除xcopy前面的回声。