批代码说明

时间:2015-12-01 21:29:42

标签: powershell batch-file

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

注意:我没有这样做。我只是在另一个堆栈溢出帖子上在线发现它。

:: 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

非常感谢, ChapelCone56

1 个答案:

答案 0 :(得分:0)

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

它正在为Windows创建一个新的powershell对象来调用浏览文件夹对话框

FOR /F 

针对其他命令的结果循环命令。

usebackq

使用不同的引用样式

powershell %psCommand%

创建另一个对象可以使用的pipileline

set "folder=%%I"

将文件夹变量设置为选择的文件夹名称

echo You chose !folder!

显示选择

如果您想使用所选的文件夹名称,请使用变量文件夹,其值可以在!文件夹中找到!