Board logo

标题: [文件操作] xcopy命令复制文件时改名,提示是文件还是目录?如何不提示? [打印本页]

作者: kmustwxw    时间: 2015-1-14 12:13     标题: xcopy命令复制文件时改名,提示是文件还是目录?如何不提示?

代码如下:
  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写的,好像可以在代码的最后加上一句,可以暂停,现在现不起来了。求帮助,谢谢先。
作者: DAIC    时间: 2015-1-14 13:14

本帖最后由 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
复制代码

作者: DAIC    时间: 2015-1-14 13:16

你的代码里面拼写错误,应该是pause而不是passe
作者: kmustwxw    时间: 2015-1-14 14:16

本帖最后由 kmustwxw 于 2015-1-14 14:18 编辑

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

回复 4# kmustwxw


    2楼用的是copy而不是xcopy,你再试试。
作者: DAIC    时间: 2015-1-14 14:23

你一定要用xcopy的话应该这样:
echo f | xcopy %%i D:\文件夹\图片!var!.jpg
作者: kmustwxw    时间: 2015-1-14 15:25

本帖最后由 kmustwxw 于 2015-1-14 15:33 编辑

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

回复 7# kmustwxw


一闪而过大部分是因为代码存在语法错误,还没有执行到pause那一行的时候就已经异常退出了。
解决方法:
在你刚写完脚本的时候,不要双击执行它。打开一个CMD窗口,执行脚本。确定没有问题之后,再试试双击执行。
作者: kmustwxw    时间: 2015-1-14 17:03

回复 8# DAIC 非常感谢。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2