使用批处理文件打开用户输入的文件夹
Opening a folder for user input using Batch File
我必须从文件夹中提取文件名并将它们粘贴到文本文档(Word 文档是最理想的,但我找到了一种方法 link 并使用以下内容自动更新 word 文件一个文本文件)。
我想做的是打开一个对话框,询问用户文件夹的路径。然后我会使用 dir 函数并将值粘贴到文本文件中。
我可以获取名称,但批处理文件必须位于同一文件夹中。我想要对话框,有没有办法做到这一点?我真的不希望用户在 cmd 提示符下输入整个文件夹路径。
这是浏览文件夹并选择它所需的代码:
Browse4Folder.bat 从此批处理文件中使用 Local_Batch_Engine.bat
@echo off
Title Browse4Folder
Color 0A
Call :Browse4Folder "Choose source folder to scan" "c:\scripts"
echo You have chosen this location "%Location%"
pause & exit
::***************************************************************************
:Browse4Folder
set Location=
set vbs="%temp%\_.vbs"
set cmd="%temp%\_.cmd"
for %%f in (%vbs% %cmd%) do if exist %%f del %%f
for %%g in ("vbs cmd") do if defined %%g set %%g=
(
echo set shell=WScript.CreateObject("Shell.Application"^)
echo set f=shell.BrowseForFolder(0,"%~1",0,"%~2"^)
echo if typename(f^)="Nothing" Then
echo wscript.echo "set Location=Dialog Cancelled"
echo WScript.Quit(1^)
echo end if
echo set fs=f.Items(^):set fi=fs.Item(^)
echo p=fi.Path:wscript.echo "set Location=" ^& p
)>%vbs%
cscript //nologo %vbs% > %cmd%
for /f "delims=" %%a in (%cmd%) do %%a
for %%f in (%vbs% %cmd%) do if exist %%f del /f /q %%f
for %%g in ("vbs cmd") do if defined %%g set %%g=
goto :eof
::***************************************************************************
我必须从文件夹中提取文件名并将它们粘贴到文本文档(Word 文档是最理想的,但我找到了一种方法 link 并使用以下内容自动更新 word 文件一个文本文件)。
我想做的是打开一个对话框,询问用户文件夹的路径。然后我会使用 dir 函数并将值粘贴到文本文件中。
我可以获取名称,但批处理文件必须位于同一文件夹中。我想要对话框,有没有办法做到这一点?我真的不希望用户在 cmd 提示符下输入整个文件夹路径。
这是浏览文件夹并选择它所需的代码:
Browse4Folder.bat 从此批处理文件中使用 Local_Batch_Engine.bat
@echo off
Title Browse4Folder
Color 0A
Call :Browse4Folder "Choose source folder to scan" "c:\scripts"
echo You have chosen this location "%Location%"
pause & exit
::***************************************************************************
:Browse4Folder
set Location=
set vbs="%temp%\_.vbs"
set cmd="%temp%\_.cmd"
for %%f in (%vbs% %cmd%) do if exist %%f del %%f
for %%g in ("vbs cmd") do if defined %%g set %%g=
(
echo set shell=WScript.CreateObject("Shell.Application"^)
echo set f=shell.BrowseForFolder(0,"%~1",0,"%~2"^)
echo if typename(f^)="Nothing" Then
echo wscript.echo "set Location=Dialog Cancelled"
echo WScript.Quit(1^)
echo end if
echo set fs=f.Items(^):set fi=fs.Item(^)
echo p=fi.Path:wscript.echo "set Location=" ^& p
)>%vbs%
cscript //nologo %vbs% > %cmd%
for /f "delims=" %%a in (%cmd%) do %%a
for %%f in (%vbs% %cmd%) do if exist %%f del /f /q %%f
for %%g in ("vbs cmd") do if defined %%g set %%g=
goto :eof
::***************************************************************************