Board logo

标题: [文件操作] 求单个文件(文件夹)拖到批处理图标后自动备份 [打印本页]

作者: ny350101    时间: 2011-4-4 18:19     标题: 求单个文件(文件夹)拖到批处理图标后自动备份

  1. @echo off
  2. set /p #PATH=请拖入需要备份的文件(文件夹)
  3. copy %#path% d:\
  4. pause
复制代码
现在的运行情况是把文件拖到该批处理图标后,是先打开批处理窗口,然后还得再将欲备份的文件拖到该窗口按回车后才能备份。
希望的结果是:将欲备份的文件(文件夹)拖到批处理图标(注意:是图标,不是运行批处理的窗口),不用按回车,直接运行,也就是直接备份。求解答,先谢谢。
作者: hanyeguxing    时间: 2011-4-4 18:38

本帖最后由 hanyeguxing 于 2011-4-4 18:50 编辑

根据情况设置 xcopy 和 copy 的参数:
  1. @echo off
  2. if "%*"=="" (exit) else set "a=%*"
  3. if exist "%a%\" (
  4.     xcopy "%a%" d:\
  5.     ) else (
  6.     copy "%a%" d:\
  7. )
复制代码
支持两种拖放:
  1. @echo off
  2. if "%*"=="" (
  3.     set/p a=请拖入需要备份的文件(文件夹):
  4.     if not defined a exit
  5. ) else set "a=%*"
  6. for %%a in ("%a%") do echo %%~aa|find /i "d">nul 2>nul&&(
  7.     xcopy "%a%" d:\
  8.     )||(
  9.     copy "%a%" d:\
  10. )
复制代码

作者: hbwazxf    时间: 2011-4-4 18:58

学习一下。。
作者: ny350101    时间: 2011-4-5 00:50

2# hanyeguxing


版主,这两个代码不行啊,一闪就过,没找到备份的文件啊
作者: hanyeguxing    时间: 2011-4-5 06:22

本帖最后由 hanyeguxing 于 2011-4-5 06:24 编辑

4# ny350101
把你的代码贴出来,同时提供系统版本、包含完整路径的你要复制的文件名
  1. @echo off
  2. set "目标文件夹=d:\"
  3. :a
  4. if "%*"=="" (
  5.     set/p a=请拖入需要备份的文件(文件夹):
  6.     if not defined a goto:a
  7. ) else set "a=%*"
  8. if not exist "%目标文件夹%" exit
  9. if exist "%a%\" (
  10.     echo a|xcopy /cfiserh "%a%" "%目标文件夹%"
  11.     ) else (
  12.     copy "%a%" "%目标文件夹%"
  13. )
  14. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2