![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 11:05 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何将当前某一目录下的文件复制到找到的目录? |
| 可打印版本 1,822 / 17 |
| 第1楼 tr0217 | 发表于 2008-11-06 19:53 |
| 初级用户 发帖 23 积分 40 | |
|
如何将当前某一目录下的文件复制到找到的目录? 在编程的集成环境里添加API时
需要将include,bin,lib文件夹中文件放入编译器(不是集成环境)可以引用的include,bin,lib文件夹中 但不同的编译器所的lib文件不同,不能放乱了 例如gcc的mingw32版的编译器应用很广泛,对c++的标准支持很好 为mingw32安装api时,需要将当前include,bin,lib文件夹中的文件复制到mingw32文件夹下的include,bin,lib文件夹中, 很有可能你的电脑上同装了borland c++编译器,Borland文件夹下也有include,bin,lib文件夹,复制时不能复制到这里边来了 比处理写的时候,提示需要为何种编译器配置API,然后将合适的lib方入到该编译器可以引用的lib文件夹中 [ Last edited by tr0217 on 2008-11-6 at 23:43 ] |
|
| 第2楼 tr0217 | 发表于 2008-11-06 20:00 |
| 初级用户 发帖 23 积分 40 | |
|
有人可能会说,API直接安装到另外的文件夹下,然后设置环境变量,注册dll,ax文件
这种代码我会写, 我下在的一些API安装程序,就采用的这种方式,但根本就不能用,复制到编译器可以引用的文件夹下才百分百的可用 此外自己写的一些小型的API,也可以用这用方式,配给编译器。 希望给出代码,最好带点注释,谢谢 |
|
| 第3楼 tireless | 发表于 2008-11-06 20:06 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
疑问:
1. 提示需要为何种编译器配置API 具体是哪些? 2.要复制哪个目录下的文件,到哪个目标目录? |
|
| 第4楼 tr0217 | 发表于 2008-11-06 23:20 |
| 初级用户 发帖 23 积分 40 | |
|
任意匹配,都是一样的,智能匹配。常用的window下的c++编译器有gcc,borland,vc++,
gcc用在集成环境下的是mingw32, 有一个文件夹mingw32,该文件夹下有名字为include,lib,bin三个分别放头文,静态库,动态库的文件夹。该文件夹在什么地方是未知的。 Borland c++在集成环境下 有一个文件夹borland,该文件夹下有名字为include,lib,bin三个分别放头文,静态库,动态库的文件夹。该文件夹在什么地方是未知的。 vc++ 有一个文件夹叫vc98,该文件夹下有名字为include,lib,bin三个分别放头文,静态库,动态库的文件夹。该文件夹在什么地方是未知的。 假设API的库叫opencv 有一个文件夹叫opencv,该文件夹下有名字为include,lib,bin三个分别放头文,静态库,动态库的文件夹。该文件夹在什么地方是未知的。但安装该API的批处理在opencv这个文件夹下。 此批处理的作用是(假设是在vc++下使用的lib,就是要将opencv文件夹下的include文件夹里的所有文件及子文件夹复制到不知道在那儿的vc98下的include文件夹里; 将opencv文件夹下的bin文件夹里的所有文件及子文件夹复制到不知道在那儿的vc98下的bin文件夹里; 将opencv文件夹下的lib文件夹里的所有文件及子文件夹复制到不知道在那儿的vc98下的lib文件夹里) 我想我应该描述清楚了,希望高手给写个代码 |
|
| 第5楼 tr0217 | 发表于 2008-11-06 23:22 |
| 初级用户 发帖 23 积分 40 | |
|
我那句的意思是
该批处理,让用户输入一个参数(比如,vc++) 然后执行楼上我说的操作 |
|
| 第6楼 tr0217 | 发表于 2008-11-06 23:36 |
| 初级用户 发帖 23 积分 40 | |
|
该批出的编写思路是(大小写不敏感)
提示输入,用一个变量保存输入 比如输入vc++(%%c) 在比较输入 然后,用for循环搜索到vc98,然后将这个路径保存到一个变量里(%%p) for %%a in (c d e) do ( for /f "delims=\" %%b in ('dir/ad/s/b %%a:\vc98') do ( rem 主要是将路径保存到变量,这一点我不会 在copy /v /y "%cd%\bin\*.*" “%%p\bin\*.*” copy /v /y "%cd%\lib\*.*" “%%p\lib\*.*” copy /v /y "%cd%\include\*.*" “%%p\include\*.*” )) 最后echo 成功 |
|
| 第7楼 tr0217 | 发表于 2008-11-06 23:41 |
| 初级用户 发帖 23 积分 40 | |
|
我作了详细说明
你来看看 帮忙写个代码 谢谢 |
|
| 第8楼 tireless | 发表于 2008-11-06 23:51 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
保存变量用 set。例如将 c 盘下 system32 这个文件夹的路径保存到变量 system32 中:
[ Last edited by tireless on 2008-11-6 at 23:54 ] |
|
| 第9楼 tireless | 发表于 2008-11-07 00:12 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
是不是这样:
输入 gcc,就找到 mingw32 这个文件夹的路径,然后将批处理所在文件夹下的 include,lib,bin 这三个文件夹中的文件分别复制到 mingw32 下的 include,lib,bin 这三个文件夹中。 输入 c++,就找文件夹 borland 输入 vc++,就找 vc98。 就这三种情况?include,lib,bin 这三个文件夹下有子文件夹吗? |
|
| 第10楼 tr0217 | 发表于 2008-11-07 20:15 |
| 初级用户 发帖 23 积分 40 | |
|
有子文件夹,可能还有更下一层文件夹,就是这样的
[ Last edited by tr0217 on 2008-11-7 at 20:43 ] |
|
| 第11楼 tireless | 发表于 2008-11-07 22:45 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
不知道这样行不行: [ Last edited by tireless on 2008-11-7 at 23:04 ] |
|
| 第12楼 tr0217 | 发表于 2008-11-08 16:50 |
| 初级用户 发帖 23 积分 40 | |
|
可以倒是可以,但有点小问题
如果vc98这个文件在该批处理所在盘或者其它盘的根目录 该批处理会把这三个文件夹复制到当前盘的根目录 不过一般集成环境的编译器不会放在根目录下。 还是要谢谢你。 但为集成环境添加的其它编译器全都默认安装在C盘根目录下 |
|
| 第13楼 tr0217 | 发表于 2008-11-08 17:18 |
| 初级用户 发帖 23 积分 40 | |
|
我还想问个问题,
regsvr32 可以注册dll和ax文件。 我在注册ax文件是没遇到问题 注册dll是提示,无法找到UnregisterServer的入口点 |
|
| 第14楼 tireless | 发表于 2008-11-08 17:34 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
Re 12 楼 抱歉,是存在那个问题。改一下:
[ Last edited by tireless on 2008-11-8 at 17:54 ] |
|
| 第15楼 tireless | 发表于 2008-11-08 17:36 |
| 银牌会员 发帖 1,122 积分 2,025 | |
Originally posted by tr0217 at 2008-11-8 05:18 PM: 这应该是 dll 文件的问题吧。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |