标题: [文件操作] 给非隐藏文件添加标志的批处理为何提示有不是内部或外部命令? [打印本页]
作者: wpNature 时间: 2011-7-18 09:01 标题: 给非隐藏文件添加标志的批处理为何提示有不是内部或外部命令?
- @echo off&setlocal ENABLEDELAYEDEXPANSION&chcp 936>nul
-
- rem 给当前目录内的非隐藏文件添加ok标志 20:53 2011-6-12
- rem (文件名含有“证券清算文件.txt”字符串的,扩展名为.ok的文件 不进行处理)
-
- (
- echo dt = CreateObject("scripting.filesystemobject"^).GetFile(WScript.Arguments(0^)^).DateLastModified
- echo WScript.Echo Split(dt, " "^)(0^) ^& "|" ^& Split(dt, " "^)(1^)
- )>%tmp%\getime.vbs
-
- set lf=^
-
-
- :: 上面必须空两行
- for /f %%a in ('copy/z %~s0 nul')do set cr=%%a
-
- for /f "tokens=1-2 delims==" %%a in ('set $out 2^>nul')do set %%a=
-
- for /f "delims=" %%a in (
- %= dir命令后面跟文件通配符 =%
- ' dir/a-d/b *.* 2^>nul ^|find /v "证券清算文件.txt" '
- )do if "%%~nxa" neq "%~nx0" if "%%~xa" neq ".ok" (
-
- set "nxa=%%~nxa"
- set "fa=%%~fa"
-
- for /f "tokens=1-4 delims=-|" %%A in (
- 'cscript //nologo %tmp%\getime.vbs "!fa!"'
- )do set y=%%A&set m=0%%B&set d=0%%C&set tm=0%%D
-
- set ymd=!y!!m:~-2!!d:~-2!
-
- for %%p in ($out!ymd!)do set "%%p=!%%p!%%~nxa|%%~za|!ymd!|!tm:~-8!\n"
-
- set file=!ymd!证券清算文件.txt
- set/p=<nul>"!nxa!.ok"
- set/p=<nul>!file!.ok
- echo !nxa!&echo ................................... OK^^!
- )
-
- for /f "tokens=1-2 delims==" %%a in ('set $out')do (
- set s=%%b&set file=%%a
- for %%f in ("!cr!!lf!")do set/p=!s:\n=%%~f!<nul>"!file:*$out=!证券清算文件.txt"
- )
- pause
复制代码
作者: mxxcgzxxx 时间: 2011-7-18 09:48
应该是单双引号转义问题
在“”内的函数转换出来的头尾‘’没起作用
建议将单引放在最后引用函数的外边
同时注意|的转义^|- for %%f in ('!cr!!lf!')do set/p=!s:\n=%%~f!<nul>"!file:*$out=!证券清算文件.txt"
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |