@echo off
set dialog="about:<input type=file id=FILE><script>FILE.click();new ActiveXObject
set dialog=%dialog%('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);
set dialog=%dialog%close();resizeTo(0,0);</script>"
for /f "tokens=* delims=" %%p in ('mshta.exe %dialog%') do set "file=%%p"
echo selected file is : "%file%"
pause
其他推荐答案
Windows脚本主机
文件选择
Windows XP有一个神秘的UserAccounts.CommonDialog wsh对象允许vbscript 和jscript启动文件选择提示.显然,那是被视为安全风险并在Vista中删除.
文件夹选择
然而,wsh shell.application对象 browseforfolder 方法仍然允许创建文件夹选择对话框.这是一个混合批次 + JScript示例.用.bat扩展.
@if (@a==@b) @end
var shl = new ActiveXObject("Shell.Application");
var folder = shl.BrowseForFolder(0, "Please choose a folder.", 0, 0x00);
WSH.Echo(folder ? folder.self.path : '');
在BrowseForFolder()方法中,第四个参数指定层次结构的根.参见 shellspecialfoldercecialfolderconstants for for for有效值列表.
最近适用bat文件获取某目录路径使用频率有点高。故而直接整理了一下。方法为新建一个txt文件,将后缀修改为bat。右键编辑,写入下面对应的内容后保存,放置在需要获取路径的文件夹下,双击运行就可以了。
④、bat,获取当前路径下独立的文件名序列。这种方式应该是运用得比较多的。
dir */b >1.txt
①bat,获取某文件夹下所有文件名。
tree /f %1>%1.tx...
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
start mshta vbscript:msgbox(" 测试提示框之一 "
dlg = win32ui.CreateFileDialog(1) # 参数 1 表示打开文件对话框
dlg.SetOFNInitialDir('C://') # 设置打开文件对话框中的初始显示目录
dlg.DoModal()
filename = dlg.GetPathName()
print(filename)
打开文件对话框相信很多人都已经懂了,那么如何通过打开对话框选择路径呢?这里就要介绍几个函数和结构体.//文件夹信息结构
typedef struct _browseinfo {
HWND hwndOwner; //弹出目录对话框的父窗口
LPCITEMIDLIST pidlRoot;//ITEMIDLIST结构的地址,包含浏览时的初始根目录
//如果设为NULL则桌面目
有时候我们需要分析筛选一部分数据出来,各个文件放在不同文件夹里面,我们想要从不同的文件下筛选出来,我们可以用批处理来快速处理:
例子:我们将1文件下文件名为Biz13001、Biz13002的文件及其下子文件夹和文件拷贝到2文件下去。
1、首先新建一个bat批处理文件:
@echo off
@echo.----------------------------------------------...
$allFolder= Get-ChildItem "C:\Target"
$newFolder=($allFolder|Sort-Object LastWriteTime -Descending|select -first 1).name
//1. Get-ChildItem获取所有文件
//2. Sort-Object LastWriteTime -Descending 排...
OPENFILENAME ofn = { 0 };
TCHAR strFilename[MAX_PATH] = { 0 };//用于接收文件名 MAX_PATH=260
ofn.lStructSize = sizeof(OPENFILENAME);//结构体大小
ofn.hwndOwner = NULL;//拥有着窗口句柄,为NULL表示对话框是非模态的,实际应用中一般都要有这个句柄
ofn.lpstrFilter = TEXT("Flie\0*.txt;\0\0");