相关疑难解决方法(0)

是否可以在批处理文件中嵌入和执行VBScript而不使用临时文件?

人们已经在批处理文件中嵌入和执行VBScript很长一段时间了.但是我所看到的所有已发布的解决方案(在此问题最初提出时)都涉及编写临时VBS文件.例如:在Windows批处理文件中嵌入VBScript.

是否可以在批处理中执行嵌入式VBScript而无需编写临时文件?

vbscript batch-file

38
推荐指数
2
解决办法
4万
查看次数

批处理文件中用户桌面的路径

我正在做一个简单的批处理文件,将位于批处理文件相同路径下的文件夹和文件复制到桌面.我可以轻松地获取批处理文件所在的路径

%~dp0
Run Code Online (Sandbox Code Playgroud)

但我想知道如何获得用户桌面的路径(我使用的是Widows 7 Ultimate)

有什么建议?

batch-file windows-7

10
推荐指数
4
解决办法
8万
查看次数

解析包含=的cmdline参数

在使用批处理文件多年后,我惊讶地发现等号'='被认为是一个参数分隔符.

鉴于此测试脚本:

echo arg1: %1
echo arg2: %2
echo arg3: %3
Run Code Online (Sandbox Code Playgroud)

和调用:

test.bat a=b c
Run Code Online (Sandbox Code Playgroud)

输出是:

arg1: a
arg2: b
arg3: c
Run Code Online (Sandbox Code Playgroud)

为什么这样,怎么可以避免?我不希望脚本的用户考虑到这个怪癖并引用"a = b",这是违反直觉的.

此批处理脚本在Windows 7上运行.

=====编辑=====

更多背景:我在编写bat文件以启动Java应用程序时遇到了这个问题.我想在bat文件中使用一些args,然后将其余的传递给java应用程序.所以我的第一次尝试是做shift,然后重建args列表(因为%*不受影响shift).它看起来像这样,就在我发现问题的时候:

rem Rebuild the args, %* does not work after shift
:args
if not "%1" == "" (
  set ARGS=!ARGS! %1
  shift
  goto args
)
Run Code Online (Sandbox Code Playgroud)

下一步是不再使用shift,而是通过一次删除一个字符%*直到遇到空格来手动实现移位:

rem Remove the 1st arg if it was the profile
set ARGS=%*
if not "%FIRST_ARG%" == "%KNOA_PROFILE%" goto …
Run Code Online (Sandbox Code Playgroud)

batch-file

9
推荐指数
1
解决办法
7657
查看次数

有任何方法可以将vbscript直接运行到wscript或cscript命令行

我想从命令行运行一个vbs命令,就像批量调用一样

cmd.exe /c "echo.Hello World! & pause"
Run Code Online (Sandbox Code Playgroud)

显然这不起作用

wscript /C MsgBox("Hello world")
Run Code Online (Sandbox Code Playgroud)

我可以打印vbs然后调用临时文件然后删除它

cmd.exe /c "echo. [VBSCODE] > temp.vbs & wscript temp.vbs & del temp.vbs"
Run Code Online (Sandbox Code Playgroud)

但这太乱了,我不希望弹出提示.

vbscript command-line wsh batch-file

7
推荐指数
2
解决办法
8869
查看次数

标签 统计

batch-file ×4

vbscript ×2

command-line ×1

windows-7 ×1

wsh ×1