loops - 如何从批处理脚本中的文件路径中删除最后一个“\”
问题描述
我正在尝试这个,它会在我复制文件的路径(Shift +右键单击>复制为路径)并将其放入批处理文件后计算文件的行,但是....我该如何解决?最后一个\
导致%path%
问题。
@echo off
Setlocal EnableDelayedExpansion
set /p ifilename=Enter file name:
for %%f in (%ifilename%) do (
set paath=%%~df%%~pf
set ifilename=%%~nf%%~xf
)
echo %paath%
echo %ifilename%
for /f "usebackq" %%a in (`dir /b /s %1 "%paath%"`) do (
for /f "usebackq" %%b in (`type %ifilename% ^| find "" /v /c`) do (
set lines= %%b
)
)
echo %lines%
pause
解决方案
>> %path% 中的最后一个 \ 导致问题
这很容易解决,代码是:
set TempDir=C:\0TEMP
@echo off
md %TempDir%
cd /d %TempDir%
::------
@echo off
@echo on
Setlocal EnableDelayedExpansion
::set /p ifilename=Enter file name:
SET DUMMYexe=%TempDir%\DUMMY.exe
IF EXIST "%DUMMYexe%" goto ll123
ECHO ---------writing
pause
(
ECHO pause1
ECHO pause2
ECHO pause3
) > %DUMMYexe%
:ll123
SET ifilename=%DUMMYexe%
for %%f in (%ifilename%) do (
set fpath=%%~df%%~pf
set ifilename=%%~nf%%~xf
)
echo %fpath%
echo %ifilename%
SET v=asdf1234
SET vv=\%v%
SET vvv=%fpath%%vv%
CALL SET v=%%vvv:\%vv%=%%
echo 111---%v%
pause
set fpath=%v%
for /f "usebackq" %%a in (`dir /b /s %1 "%fpath%"`) do (
for /f "usebackq" %%b in (`type %ifilename% ^| find "" /v /c`) do (
set lines= %%b
)
)
echo %lines%
echo on
pause
goto
当然,如果我使用var 'path',我的win10 会报:
'find' is not Recognized as an internal or external command, operable program or batch file。
顺便说一句,也许你会对下面的代码感兴趣:
SETLOCAL ENABLEDELAYEDEXPANSION
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`dir `) DO (
SET var!count!=%%F
SET /a count=!count!+1
)
ECHO -------------- %count%
ECHO
ECHO %var1%
ECHO %var2%
ECHO %var3%
ENDLOCAL
pause
我复制后测试的内容:
如何将命令输出设置为批处理文件中的变量
可以在以下位置找到有关“Setlocal EnableDelayedExpansion”的非常有用的信息:
SETLOCAL 和 ENABLEDELAYEDEXPANSION 如何工作?
推荐阅读
- postgresql - 我可以扩展 postgres 将字符串转换为 UUID 的方法吗?
- r - 制作比修拉更好看的树状图的方法?
- javascript - 如何修复 RichEmbed Discord.js
- jquery - jQuery ajax 在 ajax 结果中查找匹配项
- sql - MS SQL SERVER 在从池中获取连接之前经过的超时时间
- r - 转换 Python 列表并将其存储在 R 环境中。所以我可以使用 rpy2.objects.r() 访问列表
- elasticsearch - 具有过滤器匹配的 Elasticsearch 聚合
- video-streaming - 视频流在几秒钟后冻结,但声音正常
- sql - 包括存在数据的指标,但不包括在结果中
- amazon-web-services - Packer 可以在本地构建 AMI(即,不连接到 AWS)吗?