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

【已完成】【100元】bat通过txt和其他,新增或修改csv文件

  [复制链接]
发表于 2022-3-17 16:07:48 | 显示全部楼层
开始
  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. $csvfile=".\..\记录.csv";
  8. $txtfile=".\文档\文件.txt";

  9. $ip='null';
  10. $wmi=Get-WmiObject -Class Win32_NetworkAdapterConfiguration|?{($_.IPEnabled -eq $true) -and ($_.Description -notmatch 'Virtual')};
  11. if($wmi.IPAddress -ne $null){
  12.     $ip=$wmi.IPAddress[0];
  13. }

  14. $filename='null';
  15. $author='null';
  16. $version='null';
  17. $enc=[Text.Encoding]::GetEncoding('GB2312');
  18. if(test-path -literal $txtfile){
  19.     $text=[IO.File]::ReadAllText($txtfile, $enc);
  20.     $m=[regex]::match($text, '@名称@=([^\r\n]+)');
  21.     if($m.Success){$filename=$m.groups[1].value;}
  22.     $m=[regex]::match($text, '@作者@=([^\r\n]+)');
  23.     if($m.Success){$author=$m.groups[1].value;}
  24.     $m=[regex]::match($text, '@版本@=([^\r\n]+)');
  25.     if($m.Success){$version=$m.groups[1].value;}
  26. }else{write-host ('"'+$txtfile+'" 未找到');}

  27. $parentfolder=(get-item -literal ".").Name;

  28. $starttime=(get-date).ToString('yyyy-MM-dd HH:mm:ss');

  29. $arr=@(
  30.     $($env:USERNAME);
  31.     $ip,
  32.     $parentfolder,
  33.     $filename,
  34.     $author,
  35.     $version,
  36.     $starttime,
  37.     "",
  38.     "制作中",
  39.     "0"
  40. );

  41. $enc=[Text.Encoding]::GetEncoding('UTF-8');
  42. $title='"本机当前用户名","本机IP地址","编号","名称","版本","作者","开始时间","结束时间","当前状态","制作次数"';
  43. if(-not (test-path -literal $csvfile)){
  44.     $line='"'+($arr -join '","')+'"';
  45.     $newtext=$title+"`r`n"+$line;
  46.     [IO.File]::WriteAllText($csvfile, $newtext, $enc);
  47. }else{
  48.     $oldtext=[IO.File]::ReadAllLines($csvfile, $enc);
  49.     $isexist=$false;
  50.     for($i=0;$i -lt $oldtext.count;$i++){
  51.         $brr=$oldtext[$i].trim('"') -split '","';
  52.         if($brr[2] -eq $parentfolder){
  53.             $isexist=$true;
  54.             $arr[9]=([int]$brr[9]+1).ToString();
  55.             $oldtext[$i]='"'+($arr -join '","')+'"';
  56.         }
  57.     }
  58.     if($isexist){
  59.         [IO.File]::WriteAllLines($csvfile, $oldtext, $enc);
  60.     }else{
  61.         $line='"'+($arr -join '","')+'"';
  62.         $newtext=$oldtext[0]+"`r`n"+$line;
  63.         if($oldtext.count -ge 2){
  64.             $newtext=$oldtext[0]+"`r`n"+$line+"`r`n"+($oldtext[1..($oldtext.count-1)] -join "`r`n");
  65.         }
  66.         [IO.File]::WriteAllText($csvfile, $newtext, $enc);
  67.     }
  68. }
复制代码
发表于 2022-3-17 16:10:13 | 显示全部楼层
回复 15# linfeng_321


    如果这样,那么只要修改开始不就行了
 楼主| 发表于 2022-3-17 16:37:31 | 显示全部楼层
回复 17# zaqmlp


    这样也行,费用过去了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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