找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 48144|回复: 8

[文件操作] xcopy命令复制文件时改名,提示是文件还是目录?如何不提示?

[复制链接]
发表于 2015-1-14 12:13:40 | 显示全部楼层 |阅读模式
代码如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. set var=0
  3. for /f %%i in ('dir /b *.jpg') do (
  4.     set/a var+=1
  5.     f | xcopy %%i D:\文件夹\图片!var!.jpg
  6.   )
  7. passe
复制代码
问题:1、为何加上 f | xcopy …… 会一闪而过,不加 “ f |”时,每次都要确认。我本来是想不用每次都输入 f 意思是文件。在网上也查了好多,没有解决。
         2、加上pause依然一闪而过,我想看出错信息,如何不让窗口运行后暂停,以前我看到过namejm写的,好像可以在代码的最后加上一句,可以暂停,现在现不起来了。求帮助,谢谢先。
发表于 2015-1-14 13:14:02 | 显示全部楼层
本帖最后由 DAIC 于 2015-1-14 13:15 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set var=0
  4. for /f "delims=" %%i in ('dir /b *.txt') do (
  5.     set /a var+=1
  6.     copy "%%i" "D:\文件夹\图片!var!.jpg"
  7. )
  8. pause
复制代码
发表于 2015-1-14 13:16:34 | 显示全部楼层
你的代码里面拼写错误,应该是pause而不是passe
 楼主| 发表于 2015-1-14 14:16:07 | 显示全部楼层
本帖最后由 kmustwxw 于 2015-1-14 14:18 编辑

嗯嗯,不好意思,上面的代码是我复制到发帖的时候编辑的时候打错的,bat文件中的是正确的,我看到你写代码和我上面的有些不同:in ('dir /b *.txt')  应该是jpg,其实我写的代码主要是为了测试xcopy在复制时命名的,然后窗口会提示问    图片!var!.jpg是文件还是目录?我想用管道符后,就不用每次都输入f了,但是我加上F和管道符后就会一闪而过,就算加上pause也一样,然后又回到我上面的问题了,谢谢你帮我看看。
发表于 2015-1-14 14:22:57 | 显示全部楼层
回复 4# kmustwxw


    2楼用的是copy而不是xcopy,你再试试。
发表于 2015-1-14 14:23:42 | 显示全部楼层
你一定要用xcopy的话应该这样:
echo f | xcopy %%i D:\文件夹\图片!var!.jpg
 楼主| 发表于 2015-1-14 15:25:40 | 显示全部楼层
本帖最后由 kmustwxw 于 2015-1-14 15:33 编辑

回复 6# DAIC 嗯嗯,我好像有点明白了,知道不应该只加f 而应该加上echo .谢谢你,我的第二个问题,能帮我看下吗?就是一闪而过的问题,有时候代码有问题,但是一闪过了,就不太好找错误在哪里。
发表于 2015-1-14 16:59:27 | 显示全部楼层
回复 7# kmustwxw


一闪而过大部分是因为代码存在语法错误,还没有执行到pause那一行的时候就已经异常退出了。
解决方法:
在你刚写完脚本的时候,不要双击执行它。打开一个CMD窗口,执行脚本。确定没有问题之后,再试试双击执行。
 楼主| 发表于 2015-1-14 17:03:26 | 显示全部楼层
回复 8# DAIC 非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 20:18 , Processed in 0.012379 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表