gpt4 book ai didi

string - 如何在dos中删除某个字符之前的字符串?

转载 作者:行者123 更新时间:2023-12-04 05:39:32 27 4
gpt4 key购买 nike

假设我有文件名 text.txt 并包含几行。每行以 dayname 开头,以“/”字符结尾,然后添加路径。另一方面,我只需要每一行的文件名而不是路径。因此,我需要一些东西来从这种方式转换文件:

mon/C:\stt\test_file.abc
sat/C:\Documents and Settings\alguri\Desktop\test_file2.txt
fri/C:\sat\new_folder2\file3.jpg


mon/test_file.abc
sat/test_file2.txt
fri/file3.jpg

我需要在 dos 命令中使用此代码。我尝试了一些代码,但无法以不同的方式解析字符串。因为路径名可以有多个“\”字符。

例如,如果我知道一行中只有两个“\”字符。我可以做这样的事情:
for /f "tokens=1,4 delims=/\" %%a in (text.txt) do (
echo %%a
)

这将仅对第 1 行“test_file.abc”给出正确答案
然而,所有其他行都有不同数量的“\”字符。你觉得我能怎么办?

我想到的一个解决方案是计算“\”的数量并设置标记的第二个参数来决定我需要哪个部分。但我可以做到。除了 token 值可能不会像我想的那样动态设置。

最佳答案

您可以使用参数修饰符。

for /f "tokens=1,* delims=/" %%A in (test.txt) do (
echo %%A/%%~nxB
)

有关修饰符的更多信息,您可以阅读 What does %~dp0 mean, and how does it work?

关于string - 如何在dos中删除某个字符之前的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11433653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com