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

[数值计算] 获取系统时间的代码在CMD中可行,在批处理文件中为何取不到值?

  1. @echo off
  2. echo set t="%time:~0,2%"
  3. echo set t2="%time:~3,2%"
  4. echo %t1% --- %t2%
复制代码
上面代码我直接的cmd中执行是可以的。但是写成批处理了以后就不行了,为什么取不出来值了啊?

@echo off

set t1="%time:~0,2%"
set t2="%time:~3,2%"
echo %t1% --- %t2%

TOP

这个我已经试过了,还是不行啊

TOP

输出很正常.

调试环境设置: 取名为 "!CMD.bat"
  1. @echo off
  2. call start cmd /k "path=%path%;%~d0\DOS\网络;%~d0\DOS\command\第三方命令行程序;%~d0\DOS\command;%~d0\DOS\源码;%~d0\DOS\sysbkup"
复制代码

你可以更改为自己的设置. 我不收版权税哦.

调试用P: 取名为 "test.bat"
  1. ::set "sourFile=源文件" set "destFile=目标文件"  行列:row 总数sum 默认default  pushd/popd echo %errorlevel%
  2. ::前缀Prefix 后缀Suffix
  3. ::if defined set "destFolder=目标文件夹" 计数Count %ERRORLEVEL%
  4. ::for /f "delims=\" %%i in ('if "%isXP%"^=^="1" ^(fsutil fsinfo drives^|find /v ""^) else ^(for /f %%m in ^('fsutil fsinfo drives^^^|find /v ""'^) do echo %%m^)') do (
  5. ::for /f "eol= skip= tokens=* delims= " %%a in ('') do (
  6. ::for /f "delims=" %%i in ("!ee!") do echo %%~nxi>>hf_1.txt
  7. ::for /f "skip= tokens=1,2,3* usebackq delims=" %%a in ("音频 说明.txt") do echo %%a
  8. ::set "cmdstr=dir /ad /b "%APPDATA%"^|findstr /lixv "Microsoft SogouPY SogouPY.users""
  9. ::for /f "delims=" %%a in ('%cmdstr%') do echo rd /s /q "%APPDATA%\%%a"
  10. ::echo ①②③④⑤⑥⑦⑧⑨⑩
  11. @echo off
  12. ::setlocal enabledelayedexpansion&cls
  13. path=%path%;%~d0\DOS\网络;%~d0\DOS\command\第三方命令行程序;%~d0\DOS\command;%~d0\DOS\源码;%~d0\DOS\sysbkup
  14. :start ============================================================
  15. set t1="%time:~0,2%"
  16. set t2="%time:~3,2%"
  17. echo %t1% --- %t2%
  18. :end =============================================================
  19. endlocal&setlocal disabledelayedexpansion&echo 按任意键退出&pause>nul
  20. ::(mode con cols=80 lines=25&color 07&CHCP 437&graftabl 936)>nul
  21. for /f "tokens=2" %%a in ('CHCP') do (if not "%%a"=="437" (color 07&CHCP 437&graftabl 936))>nul
  22. del sed??????
  23. cls&exit/b
  24. echo 退出...&ping/n 4 127.1>nul
  25. for /l %%a in (5,-1,0) do (set/p =退出... ^(%%a^)<nul&ping/n 2 127.1>nul)
  26. ::=======================MODE CODE==============================
  27. ::=======================END MODE===============================
  28. set "char=abcdefghijklmnopqrstvuwxyz"
  29. set "char=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  30. %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p
  31. @echo.===== Ver: 1.0 =========================== 发布日期: 2010-08-10 =======
  32. @echo. BAT_NAME: findDupFile.bat
  33. @echo. 返回值: %ret_filename%
  34. @echo. 作用  : 根据MD5值查找重复文件
  35. @echo. 调用: findDupFile.bat Path [EXT]
  36. @echo. Path : 文件夹路径
  37. @echo. [EXT] : 文件后缀 如:"*.jpg *.bmp",带空格的必须用引号括起来
  38. @echo.====================== Copyright@ by hf-g 2010-08-10 [彭城] ============
  39. set "choice="&set/p choice=输入你的选择(1/2/q):
  40. if /i "%choice%"=="q" goto end
  41. echo %choice%|findstr "^[123]$">nul 2>nul&&goto choice%choice%
  42. goto end
  43. echo\相当于输入一个回车  退格符
  44. set/p =-<nul>con&set/p =\<nul>con&set/p =^|<nul>con&set/p =/<nul>con
  45. %* 从第一个参数开始的所有参数
  46. call echo %%text!a!%%
  47. taskkill  /f /im regedit.exe 2>nul
  48. ::━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━
  49. ::————*————*————*————*————*————*————*————
复制代码
“阿姐走了。。。可是。。。我。。。我愿意。”

TOP

回复 1# cg_047

在命令行下, 直接运行
  1. echo %time:~0,2% --- %time:~3,2%
复制代码
猜你是想用代码生成一个 bat, 不论意义何在, 你看看下面的代码及生成的 BAT 文件 "b.bat", 比较下. 当然下面的代码请先保存为一个 BAT 文件, 比如 a.bat
  1. @echo off
  2. > b.bat (
  3.   echo set t=%%time:~0,2%%
  4.   echo set t2=%%time:~3,2%%
  5.   echo echo %%t%% --- %%t2%%
  6. )
  7. call b.bat
  8. pause
复制代码

TOP

返回列表