找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16945|回复: 5

【已解决】【30元红包】-生成UUID

  [复制链接]
发表于 2022-3-23 13:11:53 | 显示全部楼层 |阅读模式
本帖最后由 linfeng_321 于 2022-3-23 14:32 编辑

写两个bat文件
-------------------------
脚本里路径变量:
$txtfile=".\文档\文件.txt";
$uuidfile=".\随机UUID\uuid.txt";
-------------------------
pwsh脚本:[System.Guid]::NewGuid().ToString("N").toUpper()
结果格式:8A320F5EBB8944A1A2447D1448B7DABE
-------------------------
1.bat
查找".\随机UUID\uuid.txt"是否有值:
有值时,直接复制到“文件\文件.txt”里@uuid@=。
没值时,“文件\文件.txt”里@uuid@=,生成新的uuid。
结果为:@uuid@=8A320F5EBB8944A1A2447D1448B7DABE

2.bat
“文件\文件.txt”里@uuid@=,等于号后没值时,生成新的uuid。有值时,不改变现有的uuid值。
结果为:@uuid@=8A320F5EBB8944A1A2447D1448B7DABE
发表于 2022-3-23 13:30:43 | 显示全部楼层
回复 1# linfeng_321


1.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. set "txtfile=文档\文件.txt"
  5. set "uuidfile=随机UUID\uuid.txt"
  6. findstr "[0-9a-zA-Z]" "%uuidfile%" >nul
  7. if errorlevel 1 (
  8.     for /f %%i in ('powershell -c "[System.Guid]::NewGuid().ToString('N').toUpper()"') do (
  9.         >"%txtfile%" echo @uuid@=%%i
  10.     )
  11. ) else (
  12.     set /p str=<"%uuidfile%"
  13.     >"%txtfile%" echo @uuid@=!str!
  14. )
复制代码
发表于 2022-3-23 13:32:27 | 显示全部楼层
回复 1# linfeng_321


2.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. set "txtfile=文档\文件.txt"
  4. findstr "@uuid@=[0-9a-zA-Z]" "%txtfile%" >nul
  5. if errorlevel 1 (
  6.     for /f %%i in ('powershell -c "[System.Guid]::NewGuid().ToString('N').toUpper()"') do (
  7.         >"%txtfile%" echo @uuid@=%%i
  8.     )
  9. )
复制代码
 楼主| 发表于 2022-3-23 13:39:25 | 显示全部楼层
回复 2# Batcher


大佬".\文档\文件.txt",保留现有txt文件格式
  1. ;编码ANSI/GB2312

  2. @uuid@=
  3. @2@=
  4. @1@=
  5. @33@=
  6. @44@=
复制代码
发表于 2022-3-23 14:17:55 | 显示全部楼层
本帖最后由 zaqmlp 于 2022-3-23 20:02 编辑

1
  1. <# :
  2. cls&echo off&cd /d "%~dp0"&rem 编码ANSI
  3. powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText("%~f0",[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
  4. pause
  5. exit
  6. #>
  7. $txtfile=".\文档\文件.txt";
  8. $uuidfile=".\随机UUID\uuid.txt";
  9. if(-not (test-path -literal $txtfile)){write-host ('"'+$txtfile+'" 未找到');exit;}
  10. $enc=[Text.Encoding]::GetEncoding('GB2312');
  11. $uuid='';
  12. if(test-path -literal $uuidfile){
  13.     $text=[IO.File]::ReadAllText($uuidfile, $enc);
  14.     $m=[regex]::match($text, '(?i)[\dA-F]{10,}');
  15.     if($m.Success){$uuid=$m.groups[0].value;}
  16. }
  17. if($uuid -eq ''){$uuid=[System.Guid]::NewGuid().ToString("N").toUpper();}
  18. $text=[IO.File]::ReadAllText($txtfile, $enc);
  19. $text=[regex]::replace($text, '(@uuid@=)[^\r\n]*', {
  20.     param($m);
  21.     $m.groups[1].value+$uuid;
  22. });
  23. [IO.File]::WriteAllText($txtfile, $text, $enc);
复制代码
发表于 2022-3-23 14:21:53 | 显示全部楼层
2
  1. <# :
  2. cls&echo off&cd /d "%~dp0"&rem 编码ANSI
  3. powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText("%~f0",[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
  4. pause
  5. exit
  6. #>
  7. $txtfile=".\文档\文件.txt";
  8. if(-not (test-path -literal $txtfile)){write-host ('"'+$txtfile+'" 未找到');exit;}
  9. $enc=[Text.Encoding]::GetEncoding('GB2312');
  10. $text=[IO.File]::ReadAllText($txtfile, $enc);
  11. $m=[regex]::match($text, '(@uuid@=)[^\s]+');
  12. if(-not $m.Success){
  13.     $uuid=[System.Guid]::NewGuid().ToString("N").toUpper()
  14.     $text=[regex]::replace($text, '@uuid@=', {
  15.         param($m);
  16.         $m.groups[0].value+$uuid;
  17.     });
  18.     [IO.File]::WriteAllText($txtfile, $text, $enc);
  19. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:35 , Processed in 0.016988 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表