返回列表 发帖

[其他] 批处理如何在txt中的每一行从下往上读取?

各位好,又要请教下,txt文本中,有没有从下往上读取txt方式,如:
txt
"F:\Downloads\201812130355_LeboPCCast_3_11_05_Release"
"F:\Downloads"
"F:\"COPY
从txt中读取后每行写到变量,谢谢
"F:\"
"F:\Downloads"
"F:\Downloads\201812130355_LeboPCCast_3_11_05_Release"COPY

ivor 发表于 2019-1-12 10:23

你好,这应该不是windows批处理的吧?现在的批处理for能从txt中从上往下,如果for能从下往上也行

TOP

回复 2# ivor
powershell一般不用

TOP

本帖最后由 yunyan100 于 2019-1-12 17:33 编辑

感谢你们好,路径长度不确定,有根目录到下面若干,5楼9个基本可以但可能超过,我改下但不适用
for /f %%a in ('findstr/n ".*" 1.txt^|sort/r') do (
set "pa=%%a"
setlocal enabledelayedexpansion
set "pa=!pa:"=!"
echo "!pa:*:=!")>>1.txt&endlocal
pauseCOPY
我下面发的是我在用,只是目前改进.文件夹或文件,要删除有"()&",通过"cd.."路径都可以
cd /d "%pa%" >nul 2>nul
:uacc
for %%a in ("%cd%") do echo %%a>>%dp%\1.txt
dir/ad "%cd%\" >nul 2>nul&&cd..&&goto :uacc
for /f "delims=" %%a in (%dp%\1.txt) do (setlocal enabledelayedexpansion&for %%i in (%%a) do (set "pay=%%~nxi"
set "pay=!pay:(=!"
set "pay=!pay:)=!"
set "pay=!pay:&=!"
set "pay=!pay: =!"
ren %%i "!pay!" >nul 2>nul))&endlocal&del %dp%\1.txt >nul 2>nul
if "%ee%"=="e" set "pac=%pa%"
if "%ee%"=="e" set "pa=%pa%\%paa%"
if "%ee%"=="e" set "paa=%paa:&=%"
if "%ee%"=="e" set "paa=%paa:(=%"
if "%ee%"=="e" set "paa=%paa:)=%"
if "%ee%"=="e" ren "%pa%" "%paa%"COPY

TOP

本帖最后由 yunyan100 于 2019-1-12 20:26 编辑

回复 10# happy886rr


    批处理自已很行到能很,就是太麻烦些,这英语有点难,就是一文件夹或文件删除符号,且改过的也是传递变量

TOP

回复 2# ivor


powershell好像不错,好像使用比批处理长点时间?你可否改下增加文件或文件夹,我本意就是选择一个文件或文件夹如果有一些字符,不仅删除字还要改文件或文件夹.

TOP

回复 14# 523066680
我想也是,我是老江湖了,习惯了批处理,powershell如果在批处理上感觉运行慢慢一点,是不是?

TOP

返回列表