[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 1# adan1

你的代码看上去没有问题,
只是双击运行会出错,启用变量延迟扩展即可,
拖放文件去执行,可以正常运行。

要是放到P文件中运行,搞成多行修改起来方便:
  1. @echo off&setlocal EnableDelayedExpansion
  2. set "p=%~1"
  3. if /i not "!p:~-4!"==".LNK" (
  4.     start /i "" C:\a.exe "%~1" /L
  5.     exit
  6. ) else (
  7.     mshta VBScript:Execute("set wsh=CreateObject(""WScript.Shell""): set lnk=wsh.CreateShortcut(""%~1""): wsh.run ""C:\a.exe"" &"" """"""& lnk.TargetPath &"""""" """"""& lnk.Arguments &"""""" ""& ""/L"": close")
  8. )
  9. pause
复制代码
一定要搞成单行:
  1. @echo off&setlocal EnableDelayedExpansion
  2. set "p=%~1"
  3. if /i not "!p:~-4!"==".LNK" ((start "" /i C:\a.exe "%~1" /L)&exit) else mshta VBScript:Execute("set wsh=CreateObject(""WScript.Shell""): set lnk=wsh.CreateShortcut(""%~1""): wsh.run ""C:\a.exe"" &"" """"""& lnk.TargetPath &"""""" """"""& lnk.Arguments &"""""" ""& ""/L"": close")
  4. pause
复制代码
1

评分人数

TOP

回复 3# adan1


    如果那个单行命令的P文双击和拖放运行都没问题,
而在cmd窗口中去用批处理+文件路径执行却出现问题,
这可能是输入时,引号的位置以及多了或少了引起的,
不知LZ输入了怎样的一行内容,执行出了错?

TOP

回复 5# pcl_test

是啊!版主的建议很好!!!

TOP

回复 7# adan1


    测试中出现的两个失败是正常的,不失败才不正常,
因为路径中有空格须用双引号包括后传递。
祝你心想事成!

TOP

回复 11# adan1


   两个失败的文件不是拖放,而是手动输入的吧?!
是否想把这两个改成不要双引号,也能在CMD窗口正确运行?
是不是已经有了好想法!?

TOP

返回列表