Board logo

标题: 尺码转换 [打印本页]

作者: wojiaomt    时间: 2021-9-5 02:15     标题: 尺码转换

文件夹内有多个TXT文件(包含多级子文件夹),内容如下。  把cm换算成in 英寸 . 1厘米等于0.3937007874英寸.  结果取到小数点后1位。 直接在txt里替换。
有偿100

size:XS
Shoulder:41 cm
Bust:74 cm
Waist Size:60 cm
Hip Size:66 cm
Sleeve Length:58.5 cm
Length:92 cm
Cuff:15 cm
作者: newswan    时间: 2021-9-5 08:02

本帖最后由 newswan 于 2021-9-5 08:21 编辑

直接修改文件
  1. @cd /d %~dp0 & powershell -command "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause & exit/b
  2. set $sour= "."
  3. Get-ChildItem -Path $sour -Filter "*.txt" -Recurse | foreach-object {
  4.     write-host ("`n" + $_.fullname)
  5.     get-content $_ | foreach-object {
  6.         if ($_ -match "(.*:)(\d+(?:.\d)?) cm")
  7.         {
  8.             $inch = [Math]::Round(([double]$matches[2]) * 0.3937007874 , 1)
  9.             ($matches[1] + $inch + " inch")
  10.         }
  11.         else
  12.         {
  13.             $_
  14.         }
  15.     } | out-file ($_.fullname)
  16. }
复制代码

作者: zaqmlp    时间: 2021-9-5 10:03

  1. /*&cls&echo off
  2. cd /d "%~dp0"
  3. dir /a-d-h/b/s *.txt|cscript -nologo -e:jscript "%~f0"
  4. pause
  5. exit
  6. */
  7. var fso=new ActiveXObject('Scripting.FileSystemObject');
  8. while(!WSH.StdIn.AtEndOfStream){
  9.     var it=WSH.StdIn.ReadLine();
  10.     WSH.echo(it);
  11.     try{
  12.         var file=fso.GetFile(it);
  13.         var f1=fso.OpenTextFile(file.Path, 1);
  14.         var text=f1.ReadAll();
  15.         f1.Close();
  16.         text=text.replace(/(\d+(?:\.\d+)?) cm/g,function(a,b){
  17.             return (Number(b)*0.3937007874).toFixed(1).replace(/\.0$/,'')+' in';
  18.         });
  19.         var f2=fso.CreateTextFile(file.Path, 2);
  20.         f2.Write(text);
  21.         f2.Close();
  22.     }catch(e){}
  23. }
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2