标题: [文件操作] 批处理复制命令,不管是否成功,如何显示被复制的源文件名字 [打印本页]
作者: abc02 时间: 2013-3-18 13:52 标题: 批处理复制命令,不管是否成功,如何显示被复制的源文件名字
例如我要复制的文件有 ~几个百个图片不同命名方式。- set a=%~dp0images\
- set b=%~dp0images\images\
-
- set ca_a=%~dp0\a\
- set ca_b=%~dp0\b\
-
- copy /y "%a%a.png" "%ca_a%"
- copy /y "%b%b.png" "%ca_b%"
复制代码
于是只有这么个结果,我想让其提示我,不管是否成功都让其 显示a.png复制成功或者b.png复制失败
我也尝试添加- IF ERRORLEVEL 1 ECHO 文件拷贝失败
- IF ERRORLEVEL 0 ECHO 成功拷贝文件
复制代码
当时不理想
如果复制东西,多的话,代码就变繁琐了。
作者: BAT-VBS 时间: 2013-3-18 14:41
- @echo off
- set a=%~dp0images
- set b=%~dp0images\images
-
- set ca_a=%~dp0\a\
- set ca_b=%~dp0\b\
-
- for %%a in (%a%\*.png) do (
- copy /y "%%a" "%ca_a%" && echo Copy %%a successful || echo Copy %%a fail
- )
- for %%a in (%b%\*.png) do (
- copy /y "%%a" "%ca_b%" && echo Copy %%a successful || echo Copy %%a fail
- )
- pause
复制代码
作者: abc02 时间: 2013-3-18 20:36
回复 2# BAT-VBS
研究了会, 不过, 貌似理解错了, 不过可能是我说明的不全, 不过,还是谢谢你,
你这个是 把images内的文件全部复制到a
把images\images内的文件全部复制到b
作者: abc02 时间: 2013-3-18 20:40
回复 2# BAT-VBS
我截取一部分代码, 以下省略,都类似这种该文件复制到指定路径的文件内,
请问, 能用for循环进行吗?- set mx=%~dp0mx\
- set mx2=%~dp0mx\mx2\
- ::日历插件
- set cl_mx=%~dp0\Flyme 2.x\com.android.calendar\640_960_16\res\drawable-xhdpi\
- set cl_mx2=%~dp0\Flyme 2.x\com.android.calendar\800_1280_16\res\drawable-xhdpi\
- ::mx
- copy /y "%mx2%calendar_widget_background.png" "%cl_mx%"
- ::mx2
- copy /y "%mx2%calendar_widget_background.png" "%cl_mx2%"
-
- ::搜索插件
- set qu_mx=%~dp0\Flyme 2.x\com.android.quicksearchbox\640_960_16\res\drawable-xhdpi\
- set qu_mx2=%~dp0\Flyme 2.x\com.android.quicksearchbox\800_1280_16\res\drawable-xhdpi\
- ::mx
- copy /y "%mx%search_floater_normal.png" "%qu_mx%"
- copy /y "%mx%search_floater_pressed.png" "%qu_mx%"
- ::mx2
- copy /y "%mx2%search_floater_normal.png" "%qu_mx2%"
-
- ::新闻天气插件
- set ge_mx=%~dp0\Flyme 2.x\com.google.android.apps.genie.geniewidget\640_960_16\res\drawable-xhdpi\
- set ge_mx2=%~dp0\Flyme 2.x\com.google.android.apps.genie.geniewidget\800_1280_16\res\drawable-xhdpi\
- ::mx
- copy /y "%mx%appwidget_bg_holo.9.png" "%ge_mx%"
- ::mx2
- copy /y "%mx2%ppwidget_bg_holo.9.png" "%ge_mx2%"
复制代码
作者: BAT-VBS 时间: 2013-3-18 22:57
回复 4# abc02
第7行是%mx2%还是%mx%?
作者: abc02 时间: 2013-3-19 08:28
回复 5# BAT-VBS
%mx2%对的,
是将特定的文件, 复制到指定的路径下,
作者: BAT-VBS 时间: 2013-3-19 10:28
回复 6# abc02 - set mx=%~dp0mx\
- set mx2=%~dp0mx\mx2\
- ::日历插件
- set cl_mx=%~dp0\Flyme 2.x\com.android.calendar\640_960_16\res\drawable-xhdpi\
- set cl_mx2=%~dp0\Flyme 2.x\com.android.calendar\800_1280_16\res\drawable-xhdpi\
- for %%a in ("%mx2%calendar_widget_background.png") do(
- for %%b in ("%cl_mx%" "%cl_mx2%") do (
- copy /y %%a %%b && echo Copy %%a successful || echo Copy %%a fail
- )
- )
复制代码
作者: abc02 时间: 2013-3-19 21:24
本帖最后由 abc02 于 2013-3-19 21:26 编辑
回复 7# BAT-VBS
试验了下, 感觉不对, 如何你这个代码循环的话是将 这一个文件 分别复制到指定的文件夹内
如果我将下面向套到你给出的循环的话- set mx=%~dp0mx\
- set mx2=%~dp0mx\mx2\
- cho 桌面
- set la_mx=%~dp0\Flyme 2.x\com.android.launcher\640_960_16\res\drawable-xhdpi\
- set la_mx2_400=%~dp0\Flyme 2.x\com.android.launcher\800_1280_16\res\drawable-sw400dp-xhdpi\
- set la_mx2=%~dp0\Flyme 2.x\com.android.calendar\800_1280_16\res\drawable-xhdpi\
- ::mx
- copy /y "%mx%bg_open_folder.9.png" "%la_mx%"
- copy /y "%mx%bnt_homepage_bottom_background.9.png" "%la_mx%"
- copy /y "%mx%ic_home_arrows_gray.png" "%la_mx%"
- copy /y "%mx%ic_home_arrows_highlight.png" "%la_mx%"
- copy /y "%mx%ic_launcher_folder.png" "%la_mx%"
- ::mx2
- copy /y "%mx2%ic_home_arrows_gray.png" "%la_mx2_400%"
- copy /y "%mx2%ic_home_arrows_highlight.png" "%la_mx2_400%"
- copy /y "%mx2%ic_launcher_folder.png" "%la_mx2_400%"
- copy /y "%mx2%bg_open_folder.9.png" "%la_mx2%"
- copy /y "%mx2%bnt_homepage_bottom_background.9.png" "%la_mx2%"
- copy /y "%mx2%ic_app_delete_a_pressed.png" "%la_mx2%"
复制代码
- echo 桌面
- set la_mx=%~dp0\Flyme 2.x\com.android.launcher\640_960_16\res\drawable-xhdpi\
- set la_mx2_400=%~dp0\Flyme 2.x\com.android.launcher\800_1280_16\res\drawable-sw400dp-xhdpi\
- set la_mx2=%~dp0\Flyme 2.x\com.android.launcher\800_1280_16\res\drawable-xhdpi\
-
- for %%a in ("%mx%bg_open_folder.9.png" "%mx%bnt_homepage_bottom_background.9.png" "%mx%ic_home_arrows_gray.png" "%mx%ic_home_arrows_highlight.png" "%mx%ic_launcher_folder.png" "%mx2%ic_home_arrows_gray.png" "%mx2%ic_home_arrows_highlight.png" "%mx2%ic_launcher_folder.png" "%mx2%bg_open_folder.9.png" "%mx2%bnt_homepage_bottom_background.9.png" "%mx2%ic_app_delete_a_pressed.png") do (
- for %%b in ("%la_mx%" "%la_mx2_400%" "%la_mx2%") do (
- copy /y %%a %%b>nul 2>nul && echo Copy %%a successful || echo Copy %%a fail
- )
- )
复制代码
其结果,就是mx2里同名文件替换了其mx里的同名文件
我想要的结果是
mx里的文件 复制到指定文件夹内
mx2里的一些文件复制到 指定的文件夹内
mx2里的另些文件复制到 指定文件夹2内(该文件内比较特殊,有俩个路径,其余的都只有一个路径)
总感觉for 应该行不通的吧,,,我这要求。。。
作者: abc02 时间: 2013-3-19 21:30
回复 7# BAT-VBS
顺便问下, 有啥开关可以, 只截取文件名+扩张名吗。。。
长长的一条路径名+文件名+提示,头都看晕了
作者: BAT-VBS 时间: 2013-3-19 23:14
回复 8# abc02
我是按照你在4楼的前9行代码写的
作者: BAT-VBS 时间: 2013-3-19 23:15
回复 9# abc02 - @echo off
- for %%a in (c:\Test\a.txt) do (
- echo %%~nxa
- )
复制代码
作者: abc02 时间: 2013-3-20 01:05
回复 10# BAT-VBS
哦, 谢啦, 我我再研究研究
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |