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

[文本处理] [已解决]批处理如何将RGB颜色的十进制转换为十六进制值?

本帖最后由 chromatin2 于 2015-4-6 20:32 编辑

现有抓取的RGB的十进制值。
如何转变为十六进制的值?BAT里面用的。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 bailong360 于 2015-4-6 17:46 编辑
  1. @Echo Off
  2. Call :10x16 Var=123456789
  3. Set /A Var2=%Var%
  4. Echo 123456789=^>%Var%=^>%Var2%
  5. Pause&Exit
  6. :10x16
  7. @Echo Off&SetLocal EnableDelayedExpansion&Set Num=%~2&Set Str=0123456789abcdef
  8. For /L %%i In (1 1 8) Do (If !Num! neq 0 (
  9. Set /A Mod=Num%%16,Num/=16&For %%j In (!Mod!) Do Set Out=!Str:~%%j,1!!Out!))
  10. EndLocal&Set %~1=0x%Out%&Goto :Eof
复制代码

TOP

RGB是0-255吧,这么写好了.
  1. @echo off&setlocal enabledelayedexpansion
  2. set "$=0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f"
  3. set n=-1&for %%a in (%$%) do for %%b in (%$%) do set/a n+=1&set #!n!=0x%%a%%b
  4. for /l %%a in (0,1,255) do echo %%a=!#%%a!
  5. pause
复制代码

TOP

  1. '&cls&@echo off&cscript -nologo -e:vbscript %~fs0 & pause &exit /b
  2. num=16
  3. WScript.echo num & "(Dec) => "& Hex(num) & "(Hex)"
复制代码

TOP

powershell
  1. [Convert]::ToString(16,16)
复制代码

TOP

  1. @if (0)==(0) echo off
  2. cscript -nologo -e:jscript %~s0
  3. pause & exit
  4. @end
  5. var a = 16
  6. WScript.Echo(a.toString(16))
复制代码

TOP

谢谢大家的思路。

TOP

分享一下这个比较少见的技巧,来自几位cn-dos的前辈:
  1. @echo off
  2. cmd /c exit /b 123456789
  3. echo %=exitcode%
  4. pause
复制代码
用 set " 还可以看到 =ExitCodeAscii、=C:、=D:、=X: 等特殊的隐藏变量
只有 31<errorlevel<127 时,才会出现 =ExitCodeAscii
1

评分人数

TOP

回复 8# CrLf


    ...这也行,,太厉害了,看不懂。

TOP

回复 8# CrLf


%=ExitCode%前几天倒是在论坛一个讨论输出ASCII字符的帖子里看到过,只是没想到可以用在这里,思路果然重要
顺便还有下面几个变量,Set也不知道怎么才能显示出来,第一个倒是很有用
%__APPDIR__%
%__CD__%
%FIRMWARE_TYPE%

TOP

返回列表