找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 1619|回复: 6

[技术讨论] [已解决]问:JS本地脚本如何获取外部启动参数?

[复制链接]
发表于 2025-10-15 23:59:32 | 显示全部楼层 |阅读模式
本帖最后由 jiavip 于 2025-10-28 18:13 编辑

如题:JS本地脚本获如何取外部启动参数!,,
,,
,,,
VBS 显示获取拖拽参数是:
  1. WScript.Echo WScript.Arguments(0)
复制代码
另存为 xxx.vbs , 把任意文件拖拽到 xxx.vbs 上松开,则显示文件 路径,,,
BAT 是:
  1. ECHO.%*
复制代码
另存为 xxx.bat , 把任意文件拖拽到 xxx.bat 上松开,则显示文件 路径,,,
或运行时 xxx.xxx 空格+外部参数。
,,,,
那么 JS 本地拖拽启动,该怎么显示获取到的外部参数呢?
,,
JS 有些函数挺好玩的!,,分享一JS函数,如:toString 函数,,
,,话说、!
上古时候鄙人年幼时曾自学写过一些网页代码,
在HTML代码的世界里遨游的时候,
不慎跌落一悬崖深处,幸被一凸出石块阻拦,
石块尽处乃一神秘洞府,年代久远洞府破旧不堪,只有些散落的残卷,
鄙人心生疑惑,仔细翻阅残卷,只见残卷上书写 “toString 定义和用法”
,,,
,,,,
,,,额,,暂停吹牛批!回到帖子,,

。。。帖子话题很短,吹一下牛批

toString 可以把任意0-9a-z数组,在2-36进制间转换,,,,
例:把数组123456789转换成16进制,,,
  1. WSH.Echo(Number(123456789).toString(16))
复制代码
把数组123456789转换成2进制,,,
  1. WSH.Echo(Number(123456789).toString(2))
复制代码
把数组123456789转换成36进制,,,
  1. WSH.Echo(Number(123456789).toString(36))
复制代码
另存为 xxxx.js 点击启动,,,,
,,,,
,,,,,,
回到帖子话题:JS本地脚本如何获取外部启动参数?
发表于 2025-10-19 12:30:01 | 显示全部楼层
和vbs一样 WScript.Arguments[0]
发表于 2025-10-19 14:05:48 | 显示全部楼层
回复 1# jiavip

jscript抓取命令行参数的方法如下...

  1. v=WSH.arguments;
  2.     WSH.echo(v(0), v.item(1)); //单点取值方法》两种格式均可
  3.     for (i=0,l=v.length; i<l; i++) WSH.echo(v(i)); //遍历方法
  4. WSH.quit();
复制代码

评分

参与人数 1技术 +1 收起 理由
jiavip + 1 根据思路改写,不需要遍历写法,,,

查看全部评分

发表于 2025-10-20 09:35:49 | 显示全部楼层
回复 2# jyswjjgdwtdtj


正确姿势略有不同
  1. WSH.Echo(Number(WSH.Arguments(0)).toString(16))
复制代码
 楼主| 发表于 2025-10-24 00:17:39 | 显示全部楼层
回复 3# aloha20200628
  1. var a = "";
  2. for (var i = 0; i < WScript.Arguments.Count(); i++) {a += (i === 0 ? "" : " ") + WScript.Arguments(i);}
  3. WScript.Echo(a);
复制代码
-------------第二种写法----
  1. var args = [];
  2. for (var i = 0; i < WScript.Arguments.Length; i++) args.push(WScript.Arguments(i));
  3. WScript.Echo(args.length > 0 ? args : "未提供参数");
复制代码
再问:VBS 删除自身,,,JS 该怎么表达。。。
  1. CreateObject("Scripting.Filesystemobject").DeleteFile(Wscript.ScriptFullName)
复制代码
前几天加入什么防人机机制,搞得很难登录。现在才回复,,,
发表于 2025-10-24 11:13:36 | 显示全部楼层
回复 5# jiavip

  1. WSH.createobject("scripting.filesystemobject").deletefile(WSH.scriptfullname)
复制代码
 楼主| 发表于 2025-10-25 22:58:25 | 显示全部楼层
回复 6# aloha20200628

蛋疼啊!,,,,,,,,,,,,,
  1. @Echo off
  2. Set /p date=请输入需要转换的数值(十进制):
  3. Set /p hexx=请输入转换的进制:
  4. Echo.%date%|FindStr "^[0-9]*$">Nul || Echo.数据非法输入!按任意键退出!&& Pause > Nul && Exit
  5. Echo.%hexx%|FindStr "^[0-9]*$">Nul || Echo.进制非法输入!按任意键退出!&& Pause > Nul && Exit
  6. if %hexx% lss 2 Echo.进制小于 2  !按任意键退出!& Pause>Nul & Exit
  7. if %hexx% gtr 36 Echo.进制大于 36 !按任意键退出!& Pause>Nul & Exit
  8. Echo.WSH.Echo(Number(WSH.Arguments(0)).toString(WSH.Arguments(1)))>date_to_hexx
  9. Echo.WSH.createobject("scripting.filesystemobject").deletefile(WSH.scriptfullname)>>date_to_hexx
  10. For /f %%a in ('cscript -nologo -e:jscript "date_to_hexx" %date% %hexx%') do ( Echo.数据 【%date%】 转换成 【%hexx%】 进制,得出【%%a】)
  11. Pause>Nul & Exit
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:33 , Processed in 0.015572 second(s), 10 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表