我编写了一个批处理脚本来打开一些 pdf 文件,效果很好。
但是我必须经常更改目录的路径。所以我尝试使用一个扩展到该目录路径的变量。
但是当我在
for
和 start
命令中使用该变量时,脚本会打开不存在的文件。
我最好的猜测是
set
命令不支持路径 \
,但如果有人知道在脚本中使用变量的方法,我们将不胜感激。
代码如下:
for /f "usebackq delims=|" %%f in (`dir /b "C:\path to the folder"`) do (
start msedge.exe "C:\path to the folder\%%f\generic file name"
)
当我使用路径时它工作得很好,但是当我将其更改为变量时,它不起作用。
带有变量的代码如下:
set dirPath=C:\users\path_to_the_folder
for /f "usebackq delims=|" %%f in (`dir /b "dirPath"`) do (
start msedge.exe "dirPath"
)
我尝试删除“”,但是当我使用变量时,脚本打开不存在的文件
MS Edge 需要 URL 作为参数,因此文件夹的命令将如注释之一中所述
“%ProgramFiles%\Microsoft\Edge\Application\msedge.exe”“%~1”
“%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe”“%~1”
其中“%~1”可以是多种类型之一,例如文件夹或文件 注意 URL 需要正斜杠才能正常工作。但是 Windows 会进行转换。
“file:///%UserProfile%/Desktop/”或者可以是“C:\Users\username\Desktop”
如果您希望根据问题使用批处理文件,根据定义,调用多个用户根文件夹似乎很奇怪。由于存在许多不适合 MSedge 的不适当文件。我目前在一个从未使用过的基本帐户中有 27 个对象,并且不希望所有这些对象都在 MSedge 中。! (我一直不得不关闭很多错误的选项卡)。无论未说明的任务是什么,这感觉都是完全错误的命令。
set "dirPath=C:\users\path_to_the_folder"
REM The following is recommended but will vary depending on OS location
REM however in this usage case may not be needed see REM below
set "msedge=%ProgramFiles%\Microsoft\Edge\Application\msedge.exe"
for /f "usebackq delims=|" %%f in (`dir /b "%dirPath%"`) do (
start "WindowName" "%msedge%" "%dirPath%\%%f"
REM the following will also work where windows uses a shorter start command
REM start msedge "%dirPath%\%%f"
)
pause
结果是 10 个选项卡,每个选项卡一个
2015-11-17 13:38 <DIR> Contacts
2019-08-14 01:50 <DIR> Desktop
2020-08-04 17:43 <DIR> Documents
2015-11-17 13:38 <DIR> Downloads
2018-05-23 12:34 <DIR> Favorites
2019-08-14 01:50 <DIR> Links
2020-08-04 17:43 <DIR> Music
2020-08-04 17:43 <DIR> Pictures
2015-11-17 13:38 <DIR> Saved Games
2020-08-04 17:43 <DIR> Videos