[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
感觉很乱,不明所以。要么发来源文件,不方便公开源文件的话,加好友私聊。

TOP

本帖最后由 yhcfsr 于 2018-3-16 06:36 编辑

回复 3# f0229f0229
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/s/b *.txt') do (
  3. (for /f "tokens=* delims= " %%i in ('type "%%a"') do echo %%i)>temp.txt
  4. move /y "temp.txt" "%%a"
  5. )
复制代码
这个只是去掉第一列前的空格而已。下面的方法将空格转换为制表符,不用再去EXCEL中分列转换,但限制性很强,适合数字之间最多只有两个空格的情况,否则就要修改代码。
总之用BAT限制多,用powershell的话就能写出通用性很好的脚本。
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/s/b *.txt') do (
  3. (for /f "tokens=* delims= " %%i in ('type "%%a"') do echo %%i)>temp.txt
  4. (for /f "delims=" %%w in ('type temp.txt') do (
  5. set "str=%%w"
  6. setlocal enabledelayedexpansion
  7. set "str=!str:  = !"&&set "str=!str: = !"
  8. echo !str!
  9. endlocal
  10. ))>"%%a"
  11. del /f /q temp.txt
  12. )
复制代码
POWERSHELL(推荐)
  1. $ScDir="D:\test folder"; #源目录
  2. Get-ChildItem -Path $ScDir -Recurse|ForEach-Object{
  3.     $content=Get-Content -Path $_.FullName;$str=$null;
  4.     foreach($line in $content) {
  5.         $str+=($line.Trim()|ForEach-Object{$_ -Replace '\s{1,}',"`t"})+"`r`n";
  6.     }
  7.   Out-File -FilePath $_.FullName -InputObject $str;
  8. }
复制代码

TOP

回复 6# f0229f0229
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/s/b *.txt') do (
  3. (for /f "tokens=* delims= " %%i in ('type "%%a"') do (
  4. set "var=%%i"
  5. setlocal enabledelayedexpansion
  6. set "var=!var:  = !"
  7. echo !var!
  8. endlocal
  9. ))>temp.txt
  10. move /y "temp.txt" "%%a"
  11. )
复制代码
1

评分人数

TOP

返回列表