Powershell 批处理代码解释

Powershell 批处理代码解释,powershell,batch-file,Powershell,Batch File,我在网上找到了这段代码,它允许我使用GUI选择一个文件夹。有人能给我解释一下这是如何工作的,以及我如何从中获得输出的吗。我希望我能得到一个输出并将其分配给一个变量 注意:这不是我做的。我只是在另一个stack overflow帖子中在线找到了它 :: fchooser.bat :: launches a folder chooser and outputs choice to the console :: http://stackoverflow.com/a/15885133/1683264

我在网上找到了这段代码,它允许我使用GUI选择一个文件夹。有人能给我解释一下这是如何工作的,以及我如何从中获得输出的吗。我希望我能得到一个输出并将其分配给一个变量

注意:这不是我做的。我只是在另一个stack overflow帖子中在线找到了它

:: fchooser.bat
:: launches a folder chooser and outputs choice to the console
:: http://stackoverflow.com/a/15885133/1683264

@echo off
setlocal

set "psCommand="(new-object -COM 'Shell.Application')^
.BrowseForFolder(0,'Please choose a folder.',0,0).self.path""

for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "folder=%%I"

setlocal enabledelayedexpansion
echo You chose !folder!
endlocal
非常感谢, 第56章

set "psCommand="(new-object -COM 'Shell.Application')^.BrowseForFolder(0,'Please choose a folder.',0,0).self.path""
它正在为windows创建新的powershell对象以调用浏览文件夹对话框

FOR /F 
对照其他命令的结果循环命令

usebackq
使用不同的引用样式

powershell %psCommand%
创建另一个对象可以使用的管道线

set "folder=%%I"
将文件夹变量设置为choosen文件夹名称

echo You chose !folder!
显示选项

如果要使用所选文件夹名称,请使用变量folder,该变量的值为!文件夹