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

[文件操作] 给非隐藏文件添加标志的批处理为何提示有不是内部或外部命令?

  1. @echo off&setlocal ENABLEDELAYEDEXPANSION&chcp 936>nul
  2. rem 给当前目录内的非隐藏文件添加ok标志 20:53 2011-6-12
  3. rem (文件名含有“证券清算文件.txt”字符串的,扩展名为.ok的文件 不进行处理)
  4. (
  5. echo dt = CreateObject("scripting.filesystemobject"^).GetFile(WScript.Arguments(0^)^).DateLastModified
  6. echo WScript.Echo Split(dt, " "^)(0^) ^& "|" ^& Split(dt, " "^)(1^)
  7. )>%tmp%\getime.vbs
  8. set lf=^
  9. :: 上面必须空两行
  10. for /f %%a in ('copy/z %~s0 nul')do set cr=%%a
  11. for /f "tokens=1-2 delims==" %%a in ('set $out 2^>nul')do set %%a=
  12. for /f "delims=" %%a in (
  13.     %= dir命令后面跟文件通配符 =%
  14.     ' dir/a-d/b *.* 2^>nul ^|find /v "证券清算文件.txt" '
  15. )do if "%%~nxa" neq "%~nx0" if "%%~xa" neq ".ok" (
  16.     set "nxa=%%~nxa"
  17.     set "fa=%%~fa"
  18.     for /f "tokens=1-4 delims=-|" %%A in (
  19.         'cscript //nologo %tmp%\getime.vbs "!fa!"'
  20.     )do set y=%%A&set m=0%%B&set d=0%%C&set tm=0%%D
  21.     set ymd=!y!!m:~-2!!d:~-2!
  22.     for %%p in ($out!ymd!)do set "%%p=!%%p!%%~nxa|%%~za|!ymd!|!tm:~-8!\n"
  23.     set file=!ymd!证券清算文件.txt
  24.     set/p=<nul>"!nxa!.ok"
  25.     set/p=<nul>!file!.ok
  26.     echo !nxa!&echo ................................... OK^^!
  27. )
  28. for /f "tokens=1-2 delims==" %%a in ('set $out')do (
  29.     set s=%%b&set file=%%a
  30.     for %%f in ("!cr!!lf!")do set/p=!s:\n=%%~f!<nul>"!file:*$out=!证券清算文件.txt"
  31. )
  32. pause
复制代码
一生的努力,才能求的灵魂的安宁。

应该是单双引号转义问题
在“”内的函数转换出来的头尾‘’没起作用
建议将单引放在最后引用函数的外边
同时注意|的转义^|
  1. for %%f in ('!cr!!lf!')do set/p=!s:\n=%%~f!<nul>"!file:*$out=!证券清算文件.txt"
复制代码
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

返回列表