Board logo

标题: [其他] 求修改:拖到这里选定文件.bat,谢谢 [打印本页]

作者: yyz219    时间: 2022-12-30 16:31     标题: 求修改:拖到这里选定文件.bat,谢谢

拖到这里选定文件.bat:
  1. ::【拖到这里选定文件】
  2. @echo off
  3. explorer /select,%~1
  4. exit
复制代码
将文件拖到批处理图标,会(在新窗口)打开文件所在目录,并且选定这个文件
*******************************************************
现在希望:将文件拖到批处理图标,在原来窗口(不打开新窗口)选定这个文件


谢谢
作者: yyz219    时间: 2023-1-1 17:35

拖到这里选定文件.bat:将文件拖到批处理图标,会(在新窗口)打开文件所在目录,并且选定这个文件
****** ...
yyz219 发表于 2022-12-30 16:31



    是不是不能够解决?
作者: idwma    时间: 2023-1-1 18:00

搜一下排第一个的就是呀
  1. #@&cls&powershell "$a='%~1';type '%~f0'|out-string|iex"&exit
  2. add-type @'
  3. using System;
  4. using System.IO;
  5. using System.Text;
  6. using System.Runtime.InteropServices;
  7. using System.Diagnostics;
  8. using System.ComponentModel;
  9. public static class test
  10. {
  11.    [DllImport("shell32.dll", ExactSpelling = true)]
  12.     private static extern void ILFree(IntPtr pidlList);
  13.     [DllImport("shell32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
  14.     private static extern IntPtr ILCreateFromPathW(string pszPath);
  15.     [DllImport("shell32.dll", ExactSpelling = true)]
  16.     private static extern int SHOpenFolderAndSelectItems(IntPtr pidlList, uint cild, IntPtr children, uint dwFlags);
  17.     public static void ExplorerFile(string filePath)
  18.     {
  19.         if (!File.Exists(filePath) && !Directory.Exists(filePath))
  20.             return;
  21.         if (Directory.Exists(filePath))
  22.             Process.Start(@"explorer.exe", "/select,\"" + filePath + "\"");
  23.         else
  24.         {
  25.             IntPtr pidlList = ILCreateFromPathW(filePath);
  26.             if (pidlList != IntPtr.Zero)
  27.             {
  28.                 try
  29.                 {
  30.                     Marshal.ThrowExceptionForHR(SHOpenFolderAndSelectItems(pidlList, 0, IntPtr.Zero, 0));
  31.                 }
  32.                 finally
  33.                 {
  34.                     ILFree(pidlList);
  35.                 }
  36.             }
  37.         }
  38.     }
  39. }
  40. '@
  41. [test]::ExplorerFile($a)
复制代码

作者: yyz219    时间: 2023-1-1 18:13

搜一下排第一个的就是呀
idwma 发表于 2023-1-1 18:00



    感谢你的帮助
作者: yyz219    时间: 2023-1-1 18:18

搜一下排第一个的就是呀
idwma 发表于 2023-1-1 18:00



    一.有一点慢
    二、对桌面的文件,还是会在新窗口打开再选定

有没有办法修改一下?谢谢
作者: idwma    时间: 2023-1-1 18:23

powershell第一次启动是有一点慢的
两个桌面的路径不一样,这个不会改呀
作者: yyz219    时间: 2023-1-1 18:37

powershell第一次启动是有一点慢的
两个桌面的路径不一样,这个不会改呀
idwma 发表于 2023-1-1 18:23



    谢谢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2