[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理在不同的电脑不能运行

  1. @echo off
  2. copy "D:\My Documents\My Aqua notes\My Notes.txt" "E:\123\123\1.txt"
  3. set a=0311            %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%  
  4. set b=      FG                                       
  5. for /f "delims=" %%i in (1.txt)do echo %a%%%i%b%>>"E:\123\123\DJ.txt"
  6. pause
  7. del E:\123\123\1.txt
  8. del D*.txt
  9. del "D:\My Documents\My Aqua notes\My Notes.txt"
复制代码
批处理如上,我在自己的电脑上可以正常运行,我的是WIN7 64位,在XP虚拟机里也可以运行,然后在公司电脑上有3台不能运行,一台能运行,公司电脑都是XPSP3。3台不能运行的应该是这一步
set a=0311            %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%  
set b=      FG                                       
for /f "delims=" %%i in (1.txt)do echo %a%%%i%b%>>"E:\123\123\DJ.txt"
copy "D:\My Documents\My Aqua notes\My Notes.txt" "E:\123\123\1.txt"这一步能运行,能看到一个1.txt文件
为何?哪里出错?请高手帮忙下。谢谢

你把echo %date% %time%
显示出来和正常运行的电脑比较一下。

TOP

本帖最后由 /zhqsystem/zhq 于 2015-11-1 21:47 编辑

错误点可能有几点:
1:复制时可能有同名文件[没有强制参数或强行重命名复选项]
2:每个系统的日期格式不同导致提取日期失败
3:设定变量包含空格用整体括起来set "a=1   4532  34   4533  "
4:for中如果不想保留提取的数据最后带有空格将 do (echo %%i)>>导出
5:del删除不加参数时默认不删除系统文件只读属性等...(del D*.txt,难道是删除当前位置的D开始的文件?)
6:个人建议将执行路径加上引号[以免带有空格路径会识别失败问题]
1

评分人数

这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

楼上,我试了下你说的几点
错误点可能有几点

1:复制时可能有同名文件[没有强制参数或强行重命名复选项]--------------------这个没有同名文件。
2:每个系统的日期格式不同导致提取日期失败-----------------------------------这个我把提取时间改成固定的字符也还是不行。
3:设定变量包含空格用整体括起来set "a=1   4532  34   4533  "-------------按你说的加了,还是一样
4:for中如果不想保留提取的数据最后带有空格将 do (echo %%i)>>导出------这个要空格的
5:del删除不加参数时默认不删除系统文件只读属性等...(del D*.txt,难道是删除当前位置的D开始的文件?)-------还没运行到这一步,因为我没看到dj.txt文件,也就是说
set a=0311            %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%  
set b=      FG                                       
for /f "delims=" %%i in (1.txt)do echo %a%%%i%b%>>"E:\123\123\DJ.txt"
这一步没有运行成功
以上,谢谢
6:个人建议将执行路径加上引号[以免带有空格路径会识别失败问题]

TOP

我的问题已解决,贴出来给大家参考下。原因是那三台不能运行的电脑记事本默认保存为unicode编码格式,要保存为ANSI格式的才行。所以我在
copy "D:\My Documents\My Aqua notes\My Notes.txt" "E:\123\123\1.txt"
下面增加一条
type 1.txt>2.txt
问题解决!
在这里还问下,为何有的电脑默认是保存unicode格式?有的默认保存ANSI格式?如何更改成自己想要的默认?

TOP

回复 5# tamyfx


    echo xx>1.txt 似乎默认是utf8
右键新建是默认ANSI

其它文本编辑器可能会默认使用utf8
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

返回列表