标题: [系统相关] WIN7系统运行代码提示错误 [打印本页]
作者: adfs945 时间: 2023-8-11 15:25 标题: WIN7系统运行代码提示错误
大家好:
经过近期的学习,写了一些bat程序:循环自动将指定文件夹内文件移动到其他位置。
问题点:在WIN10系统运行正常,在WIN7系统运行会导致系统卡死
最终在各位的指导下排查出异常代码:隐藏运行窗口
个人理解:难道是win7系统不能识别或者不支持?
想问下大家win7情况下想隐藏运行窗口该如何实现?
提示错误代码:- start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
复制代码
错误排查方法写真(因论坛图片上传失败,所以使用图床):
在com界面一句一句运行,确认哪一步出现异常。
1.
2.
3.
完整代码:- if "%1"=="hide" goto CmdBegin
- start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
- :CmdBegin
-
- @echo off
-
- set INTERVAL=10
-
- :Again
-
- rem 批处理保存为ansi编码格式
- set "folder1=C:\Users\dmns25163\Desktop\AAA"
- set "folder2=S:\DMNSPZJC"
- for %%a in ("%folder1%\*.*") do (
- if not exist "%folder2%\%%~nxa" (
- move "%%a" "%folder2%"
- ) else (
- set n=1
- call :1 "%%a"
- )
- )
- timeout %INTERVAL%
- goto Again
-
- pause
- exit
-
- :1
- set /a n+=1
- if not exist "%folder2%\%~n1(%n%)%~x1" (
- move "%~1" "%folder2%\%~n1(%n%)%~x1"
- exit /b
- ) else (
- goto :1
- )
复制代码
作者: Batcher 时间: 2023-8-11 16:04
回复 1# adfs945 - if "%1"=="hide" goto :ExecBat
- start mshta vbscript:createobject("wscript.shell").run("""%~f0"" hide",0)(window.close) && exit /b
-
- :ExecBat
- @echo off
- start notepad
- ping -n 5 127.0.0.1 >nul
复制代码
我在Win7里面测试没有问题。
你改成%~f0再试试,如果还是不行,检查一下批处理所在完整路径是否有特殊字符。
作者: Five66 时间: 2023-8-11 16:12
路径有英文逗号?
作者: buyiyang 时间: 2023-8-11 16:18
你在命令行界面执行- start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
复制代码
提示找不到文件是因为批处理外%~0无法被扩展,实际这行代码应该没有问题。
作者: Five66 时间: 2023-8-11 16:51
啊,原来你是直接在cmd里输入的,就如楼上所说的那样
作者: jszw666 时间: 2023-8-12 23:31
都是高手啊,向大咖学习
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |