Windows I';我几乎尝试了所有我能从网上找到的东西。没有什么。有没有办法合并一个字符串和一个变量,批量打开一个程序?

Windows I';我几乎尝试了所有我能从网上找到的东西。没有什么。有没有办法合并一个字符串和一个变量,批量打开一个程序?,windows,batch-file,cmd,Windows,Batch File,Cmd,我在批量生产方面有点经验,但没有那么多。刚过初学者阶段。我有一个程序,我正试图打开,使用批处理。问题是,如果其他人要使用它,我如何才能获得我试图打开的程序的目录,如果它是一个不同的用户名,而不是路径的用户名,我不知道他们的用户名。我通过使用%CD%获取文件来修复此问题。如何将变量%CD%与一个字符串(路径的其余部分)合并到一个命令中,该命令将使用这两个变量打开程序。那么%CD%是路径的第一部分(变量)还是字符串(路径的第二部分) 我的代码 @ECHO OFF set mypath=%cd% :

我在批量生产方面有点经验,但没有那么多。刚过初学者阶段。我有一个程序,我正试图打开,使用批处理。问题是,如果其他人要使用它,我如何才能获得我试图打开的程序的目录,如果它是一个不同的用户名,而不是路径的用户名,我不知道他们的用户名。我通过使用%CD%获取文件来修复此问题。如何将变量%CD%与一个字符串(路径的其余部分)合并到一个命令中,该命令将使用这两个变量打开程序。那么%CD%是路径的第一部分(变量)还是字符串(路径的第二部分)

我的代码

@ECHO OFF
set mypath=%cd%

:top
set /P c=Welcome to Hentai Virus. Enter [help] to get a list of commands:
if /I "%c%" EQU "help" goto :enter_help
if /I "%c%" EQU "gui" goto :enter_gui
if /I "%c%" EQU "hentai virus" goto :virus_start
goto :top

:under
set /p r=
if /I "%r%" EQU "help" goto :enter_help
if /I "%r%" EQU "gui" goto :enter_gui
if /I "%r%" EQU "hentai virus" goto :virus_start
goto :under


:enter_help

echo Commands
echo --------
echo - help
echo shows you all the commands and uses that this command-line can do.
echo -
echo - gui
echo opens the gui. Much better and easier than a dumb command line-tool.
echo -
echo - hentai virus
echo starts the virus and unleashes what can be found at the dephs of hell. Basically all hell on "a" computer.
goto :under

:enter_gui
echo ---------------------------------
echo Sorry, not currently made yet.
echo ---------------------------------
goto :under

:virus_start
this isnt working. Is there any way to merge a variable and a string to open a program?

您可以执行将目录更改为:C:/users/username的
cdc:%homepath%
。我认为这将有助于使用SET命令查看所有变量的值。这里有一些

 8:45:49.39  C:\Users\lit>SET
...
HOMEDRIVE=H:
HOMEPATH=\
HOMESHARE=\\example.com\dfs1\home\lit
LOCALAPPDATA=C:\Users\lit\AppData\Local
...
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
...
TEMP=C:\Users\lit\AppData\Local\Temp
...
USERNAME=lit
USERPROFILE=C:\Users\lit
windir=C:\windows

我建议使用
CD/D“%USERPROFILE%”
CD“%CD%\thedir”

以下是脚本的一个快速示例,并进行了一些改进:

@Echo关闭
SetLocal EnableExtensions DisableDelayedExpansion
设置“BasePath=%~dp0”
欢迎来到亨泰病毒。
:顶部
设置“message=要获取命令列表,请输入help”
:低于
设置“c=”
设置/P“c=%message%>”
如果未定义c如果未定义消息(转到下)否则转到上
设置“c=%c:=%”
(Set c)2>NUL |%SystemRoot%\System32\findstr.exe”/R/I/c:“c=help”/c:“gui”^
/C:“亨泰病毒”1>NUL | | GoTo Top
如果/I“%c%”==“帮助”转到输入\u帮助
如果/I“%c%”==“gui”转到\u gui
如果/I“%c%”==“亨泰病毒”转到病毒\u启动
:输入帮助
设置“消息=”
回显命令
回音--------
Echo帮助向您显示所有受支持的命令及其用法。
回音(
Echo gui打开gui。
Echo比一个愚蠢的命令行工具更好、更简单。
回音(
Echo-hentai病毒启动该病毒并释放出可在现场发现的病毒^
深渊
地狱的回声。基本上所有的地狱都在“a”电脑上。
转到下
:输入
回音---------------------------------
对不起,目前还没有。
回音---------------------------------
转到下
:病毒\u开始
Echo=Start”“%BasePath%HentaiVirus.exe”&暂停

在最下面一行,它的
Echo
ing将运行的命令(不带
Echo=
前缀)。这显然包括对您问题的回答,即一个变量,与一个虚构的字符串
HentaiVirus.exe
合并。唯一真正的区别是,我使用了运行脚本的路径,
%~dp0
,而您对当前工作目录(未知)使用了
%cd%
。如果您的“假装”病毒有一个特定的已知路径,请用该可执行文件的父目录的完整路径替换
%~dp0
,并确保包含一个尾部反斜杠,例如
Set“BasePath=%UserProfile%\Downloads\“
。当您确信最后一行是正确的时,只需从中删除
Echo=
,然后
&暂停
,在下一次运行时,它应该可以正常工作。

编辑:这不是一个真正的病毒。只是一个恼人的网站垃圾邮件发送者,其中有很多代码与您的问题完全无关。向我们展示您试图解决问题的方法。”(其余的只是让我们相信你的恶意。我们不太可能想成为其中的一部分)在你需要帮助的代码之前,你已经发布了很多代码,但没有告诉我们这些代码是什么。我们所知道的只是你试图合并一个变量和一个字符串,但我们不知道是哪个变量,我假设
%mypath%
,因为这是你定义的唯一有用的变量,或者是哪个字符串。你能把你的问题告诉我吗排除您试图在
:hentai_virus
标签下运行的实际命令。请确保向我们展示您正在使用的变量(如果它不是
%mypath%
)是如何定义的,以及任何调试信息,以及发生了什么与您预期相反的情况。最好使用
cd/D%HOME%
,因为
HOME
包含他带着驱动器号和
cd/D
的完整路径能够更改驱动器。以前我不知道这一点,很好。这是一种方法。谢谢。你的回答并没有真正解决我的问题。反而使它变得更容易。我感谢你为重新设计我的脚本所做的所有工作,所以我将以你的回答作为最终答案。我将使用其他答案编写语言来实现这一点。无论如何,谢谢。请注意@crjase,从我的,你没有定义一个问题,你只是告诉我们你有一个。我创建这个是为了猜测,因为这是一个正确的方式来构造你的代码。这个网站期待你的问题,以便我们可以复制它自己。请阅读和它的每个链接页面,在为了了解期望值是什么,以及如何更好地使用此网站。对不起,我做这种事情很糟糕。我从来没有给出足够的细节,我总是问明显的问题,我就是不擅长这个。我将阅读如何正确提问。真的非常感谢您所做的一切。Set在最新版本的VBS中不起作用,但谢谢您anyways.
SET
是一个cmd.exe命令,用于显示环境变量及其值。它与VBS无关。您正在编写一个.bat文件脚本。对吗?