我正在尝试创建一个批处理文件,该文件将运行并打开一个Powershell脚本然后运行。
这是我到目前为止所拥有的
@echo off
for /r C:\folder %%a in (*) do if "%%~nxa"=="2WNRN4VMS2.txt" set p=%%~dpnxa
if defined p (
echo %p%
) else (
echo File not found
Pause
)
Powershell.exe -Command "& '%p%'"
exit
答案 0 :(得分:0)
使用命令 DIR 非常简单,可以在文件夹C:\folder
及其所有子文件夹中递归搜索文件,并命令 FOR 分配驱动器和路径找到的文件到环境变量:
@echo off
for /F "delims=" %%I in ('dir /A-D /B /S "C:\folder\2WNRN4VMS2.txt" 2^>nul') do set "FilePath=%%~dpI" & goto FoundFile
echo File not found
pause
goto :EOF
:FoundFile
Powershell.exe -Command "& '%FilePath%'"
请注意,分配给环境变量FilePath
的字符串以反斜杠结尾。如果应该在没有反斜杠的情况下传递文件的路径,请在PowerShell
命令行%FilePath:~0,-1%
中使用。
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
dir /?
echo /?
for /?
goto /?
pause /?
set /?