拖放xcopy

时间:2015-05-22 15:59:37

标签: batch-file copy xcopy nas

我需要一个批处理脚本,我可以将文件或导向器复制到我的NAS中。我想拖动批处理中的文件或文件夹然后完成他的工作。现有的文件或目录应该被覆盖,我不想得到一些覆盖或某些问题。其他。此外,我想在此窗口的“发送到”对话框中调查此脚本。我希望你能帮忙:)。

我最大的问题是拖放功能。

谢谢

PS: 这个代码我在互联网上找到拖放但我不明白-.-

    @echo off & setlocal
set "Ein=meinedatei.txt"
set "Aus=meinedatei.dat"

if exist "%Aus%" del "%Aus%"
set Zuletzt=-
for /f "tokens=2" %%i in ('findstr ".rst .pop" "%Ein%"^|sort') do call :ProcessLink "%%~i"
goto :eof

:ProcessLink
if %1==%Zuletzt% goto :eof
set Zuletzt="%~1"
 (echo /%~1)>>"%Aus%"

2 个答案:

答案 0 :(得分:0)

@echo off
:a
cls
set /p file=::drag and drop file you want to copy here::
if not exist "%file%" echo file does not exist && pause && goto :a
set /p dest=Destination path/folder:
if not exist "%dest%" echo path does not exist && pause && goto :a
copy /y %file% %dest%
if %errorlevel%==0 echo copy successful && pause && goto :a
echo copy failed.
pause
goto :a

另外,如果您想在发送到菜单中轻松添加路径/驱动器/文件夹: 1)打开cmd并输入:start %appdata%\microsoft\windows\sendto 2)右键单击文件夹内部,选择新建,然后单击快捷方式,在对话框中键入项目的位置。

答案 1 :(得分:0)

下一个脚本显示批处理参数处理;允许通过

提供最多255个参数
  • copy & paste(选择一些文件和文件夹,右键单击任意一个,选择复制。然后右键单击批处理文件,选择粘贴),或者
  • drag & drop(符合上述规定的程序)或
  • 使用sendto菜单,如果您已将.bat文件(或其快捷方式)放入shell:sendto文件夹,或
  • 线参数,例如drag-drop_30401166.bat files "b c"

您可以将echo folderecho fileecho unknown行替换为符合您要求的代码段(例如xcopycopyrobocopy等)。

@echo OFF >NUL
SETLOCAL enableextensions
echo(
echo before any shift [%~0] [%~1] [%~2] [%~3] [%~4]
echo   all %%* = %*
echo(
set /A "ii=1"
:loopfor
  If exist "%~1\" (
      echo folder  %%%ii% = %1  
  ) else (
      If exist "%~1" (
          echo   file  %%%ii% = %1
      ) else (
          echo unknown %%%ii% = %1
      )
  )
  SHIFT
  set /A "ii+=1"
  if not [%1]==[] goto :loopfor
echo(
shift
echo after all shifts [%~0] [%~1] [%~2] [%~3] [%~4]
echo   all %%* = %*
pause
goto :eof

输出样本

before any shift [D:\bat\StackOverflow\drag-drop_30401166.bat] [D:\bat\runcmd.vb
s] [D:\bat\crlferror.bat] [D:\bat\UnASCII Names] [D:\bat\Unusual Names]
  all %* = D:\bat\runcmd.vbs D:\bat\crlferror.bat "D:\bat\UnASCII Names" "D:\bat
\Unusual Names"

  file  %1 = D:\bat\runcmd.vbs
  file  %2 = D:\bat\crlferror.bat
folder  %3 = "D:\bat\UnASCII Names"
folder  %4 = "D:\bat\Unusual Names"

after all shifts [] [] [] [] []
  all %* = D:\bat\runcmd.vbs D:\bat\crlferror.bat "D:\bat\UnASCII Names" "D:\bat
\Unusual Names"
Press any key to continue . . .

输出(命令行中提供的参数):

==>drag-drop_30401166.bat files "b c"

before any shift [drag-drop_30401166.bat] [files] [b c] [] []
  all %* = files "b c"

folder  %1 = files
unknown %2 = "b c"

after all shifts [] [] [] [] []
  all %* = files "b c"
Press any key to continue . . .

资源(必读):