[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求助批处理建立防止盗拷文件目录的方法

本帖最后由 墨者革离 于 2024-11-22 23:36 编辑

求助:工作电脑中有很多重要工作文件,时不时有人偷偷拷备,又不方便说。这些文件集中放在一个文件夹中。
目标:想复制这个文件夹下的文件、子目录,在另一分区下新建立一套,目录结构与文件相同,但是打开任一文件没有实际内容。
思路:用DIR命令获取源文件夹中的所有目录、文件、类型,用ECHO >在另一文件中建立相同所有目录、文件、类型;用fsutil file createnew 设置每个文件的字节数大小(如果无法按原文件大小,用随机数也可)
假设从D:\Afile真文件夹 新建到E:\Bfile假文件夹。
不知道我说的是否明白?本人不太懂批处理,求代码,谢谢。


————————————————————————————————————————————————
经测试,七楼代码为正解,问题解决,谢谢各位大师。
  1. @echo off & xcopy "D:\Afile" "E:\Afile\" /tey
  2. for /f "delims=" %%F in ('dir /b/s/a-d "D:\Afile" ') do fsutil file createnew "e:%%~pnxF" %%~zF
  3. pause&exit/b
复制代码

  1. robocopy D:\Afile E:\Bfile * /E /Create /MT
复制代码
1

评分人数

微信:flashercs
QQ:49908356

TOP

是监测文件复制 ,然后让其复制假文件么?是的话很麻烦 ,想准确还得弄成驱动

TOP

回复 2# flashercs

老师,您这组代码很好,能完全抽拷备一个文件夹及以下文件名,可惜文件都是0字节的。
可不可以用,fsutil file createnew (不知道中间这个怎么写) %random%  
让所有文件有大小?

TOP

本帖最后由 aloha20200628 于 2024-11-22 20:38 编辑

回复 1# 墨者革离
  1. @echo off & xcopy /teiy "D:\Afile" "E:\Bfile\"
  2. for /f "delims=" %%F in ('dir /b/s/a-d "D:\Afile" ') do fsutil file createnew "e:%%~pnxF" %%~zF
  3. pause&exit/b
复制代码

TOP

回复 5# aloha20200628

先表示感谢。
代码测试,显示:错误,系统找不到指定的路径。

TOP

回复  墨者革离
aloha20200628 发表于 2024-11-22 00:07



@echo off & xcopy "D:\Afile" "E:\Afile\" /tey
for /f "delims=" %%F in ('dir /b/s/a-d "D:\Afile" ') do fsutil file createnew "e:%%~pnxF" %%~zF
pause&exit/b

帮试了一下,要这样才行
1

评分人数

TOP

  1. @echo off
  2. set "src=A"
  3. set "dst=B"
  4. @REM robocopy "%src%" %dst% * /E /Create /MT
  5. for %%A in ("%src%") do set "src=%%~fA"
  6. for %%A in ("%dst%") do set "dst=%%~fA"
  7. md "%dst%" 2>nul
  8. xcopy "%src%\*" "%dst%" /E /T /Y
  9. for /r "%src%" %%A in (*) do (
  10.   set "f=%%~fA"
  11.   set "z=%%~zA"
  12.   setlocal enabledelayedexpansion
  13.   set "f2=!f:%src%=%dst%!"
  14.   fsutil file createNew "!f2!" !z!
  15.   endlocal
  16. )
  17. pause
复制代码
微信:flashercs
QQ:49908356

TOP

本帖最后由 aloha20200628 于 2024-11-22 22:02 编辑

回复 6# 墨者革离

抱歉  xcopy 上路之前忘了充电 漏了一个参数 /i, 5楼代码已订正...

TOP

回复 8# flashercs
提示:
找不到文件 - *
请按任意键继续. . .

TOP

回复  墨者革离

抱歉  xcopy 上路之前忘了充电  漏了一个参数 /i, 5楼代码已订正...
aloha20200628 发表于 2024-11-22 20:38



    还是这样:

错误:  系统找不到指定的路径。
错误:  系统找不到指定的路径。
错误:  系统找不到指定的路径。
错误:  系统找不到指定的路径。
错误:  系统找不到指定的路径。

请按任意键继续. . .

TOP

@echo off & xcopy "D:\Afile" "E:\Afile\" /tey
for /f "delims=" %%F in ('dir /b/s/a-d "D:\Afil ...
teacoffee 发表于 2024-11-22 16:42



谢谢,正解! :handshake

TOP

本帖最后由 aloha20200628 于 2024-11-23 11:45 编辑

回复 11# 墨者革离

!最后爆胎是在 fsutil file createnew!复查原测试样本还真是 ‘源目录’ 与 ‘到达目录’ 仅是盘符不同!若还是维持楼主要求从 "D:\Afile" 到达 "E:\Bfile\",盘符和路径均不同,须用以下代码 ‘补胎’...
  1. @echo off & xcopy /teiy "D:\Afile" "E:\Bfile\"
  2. for /f "delims=" %%F in ('dir /b/s/a-d "D:\Afile" ') do (
  3.    set "_F=%%F" &setlocal enabledelayedexpansion
  4.    set "_F=!_F:D:\Afile=E:\Bfile!"
  5.    (fsutil file createnew "!_F!" %%~zF) &endlocal)
  6. pause&exit/b
复制代码

TOP

返回列表