显示文本文件中任何文件的当前位置路径(带有斜线)

时间:2019-01-12 19:58:34

标签: batch-file

我希望批处理文件自动找到名为“ file.txt”的文件的位置。 我希望批处理文件精确地逐字打印,以斜杠斜杠打印,计算机上存在的文件路径!!我的主要想法是,无论我的计算机在哪里,批处理文件都必须能够找到该文件的位置。

例如,如果文件的目录路径为“ C:\ users \ desktop \ folder \ file.txt ”,则我希望批处理文件自动找到该文件,然后复制其路径并将其原样发送到另一个名为“ location.txt”的文本文件。我希望这个问题现在很清楚!

但是我认为以下内容仅适用于批处理文件的当前目录路径,而不适用于任何其他文件。

@echo off
setlocal enabledelayedexpansion
set "mypath=%cd%"
set "stringtoreplace=toto"
(for /f "delims=" %%a in ('type test.txt') do (
set "content=%%a"
set "content=!content:%stringtoreplace%=%mypath%!"
echo !content!
))>output.txt

2 个答案:

答案 0 :(得分:1)

当我正确理解您的修改后,您会尝试查找文件(位置未知)并获取其实际位置。

以下内容将在file.txt中查找文件C:\users\,它是子文件夹,并将列表写入output.txt

dir /s /b "C:\users\file.txt" >output.txt

修改

要在“系统上的任何位置”查找文件,必须在每个驱动器上进行搜索。

for /f "tokens=2 delims==:" %%a in ('wmic logicaldisk where "drivetype=3" get caption /value') do (
  dir /s /b "%%a:\file.txt" >>output.txt
)

({drivetype=3将是您的所有硬盘驱动器。如果您也想检查拇指驱动器,请第二次添加同一行,但是将3更改为2(第三个如果您也需要检查CD驱动器,请与5对齐)

答案 1 :(得分:0)

由于您的问题尚不清楚,因此我在此处采取了暗中行动,但我假设您在文件test.txt中有一个文件列表,出于某种奇怪的原因,其中包含单词toto它。如果真是这样,那么应该或多或少是您想要的。

它将访问文件,获取每一行,然后搜索toto,然后将其替换为空,然后使用dir /sfindstr进行搜索

@echo off
setlocal enabledelayedexpansion
set "stringtoreplace=toto"
(for /f "delims=" %%a in (test.txt) do (
    set "content=%%a"
    set "content=!content:%stringtoreplace%=!"
    for /f %%i in ('dir /b /a-d /s ^| findstr !content!') do echo %%i
)
)>>output.txt