在Windows批处理文件中通过http复制目录

时间:2014-09-01 08:21:54

标签: http batch-file copy

我需要在批处理文件中使用命令,该文件通过http将远程目录的内容复制到本地目录。

例如,将文件夹http:// path //文件夹复制到C:\ folder

我需要在不安装任何其他工具的情况下执行此操作。

提前致谢!

1 个答案:

答案 0 :(得分:1)

http服务器没有标准的方法来列出可访问的目录。

例如,我将http://unomoralez.com/content/files/catalog2/source/作为使用http列出目录的常用方法之一。你的网站看起来可能有所不同,但我不知道......(临时list2.txt文件 - 您可以注意删除它以检查目录页面的格式并告诉我如果它不起作用。如果IIS是这样的:http://live.sysinternals.com/tools/

脚本将所有内容下载到.\download_dir(非递归下载):

@if (@X)==(@Y) @end /******  jscript comment ******

@echo off
::::::::::::::::::::::::::::::::::::
:::       compile the script    ::::
::::::::::::::::::::::::::::::::::::
setlocal
if exist simpledownloader.exe goto :skip_compilation

set "frm=%SystemRoot%\Microsoft.NET\Framework\"
:: searching the latest installed .net framework
for /f "tokens=* delims=" %%v in ('dir /b /s /a:d /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
    if exist "%%v\jsc.exe" (
        rem :: the javascript.net compiler
        set "jsc=%%~dpsnfxv\jsc.exe"
        goto :break_loop
    )
)
echo jsc.exe not found && exit /b 0
:break_loop


call %jsc% /nologo /out:"simpledownloader.exe" "%~dpsfnx0"
::::::::::::::::::::::::::::::::::::
:::       end of compilation    ::::
::::::::::::::::::::::::::::::::::::
:skip_compilation

:: download the file


 :::::::::::::::::::::::::::::::::::::::::
 ::::just change the link and the file::::
 :::::::::::::::::::::::::::::::::::::::::


 ::!!!!!!!!!!!!!!!!!!!!!!!!!:::
 simpledownloader.exe "http://unomoralez.com/content/files/catalog2/source/" "list2.txt"

 md download_dir >nul 2>&1

 for /f "skip=1 tokens=4 delims=>< " %%a in ('type list2.txt^| find /i "href" ')  do (
    simpledownloader.exe "http://unomoralez.com/content/files/catalog2/source/%%a" .\download_dir\%%a
)

del /q /f list2.txt


exit /b 0


****** end of jscript comment ******/

import System;
var arguments:String[] = Environment.GetCommandLineArgs();
var webClient:System.Net.WebClient = new System.Net.WebClient();
print("Downloading " + arguments[1] + " to " + arguments[2]);
try {
    webClient.DownloadFile(arguments[1], arguments[2]);
} catch (e) {

        Console.BackgroundColor = ConsoleColor.Green;
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine("\n\nProblem with downloading " + arguments[1] + " to " + arguments[2] + "Check if the internet address is valid");
        Console.ResetColor();
        Environment.Exit(5);
}

如果你powershell .net,你也有cURL,所以这段代码会毫无问题地执行。

这或多或少是我已经拥有的代码,但您也可以查看 - &gt; https://code.google.com/p/curlie/如果您熟悉{{1}}并创建混合jscript / .bat文件。