相关疑难解决方法(0)

%~dp0是什么意思,它是如何工作的?

我发现%~dp0非常有用,我使用它来使我的批处理文件更具可移植性.

但标签本身对我来说似乎很神秘......这是~做什么的?是什么dp意思驱动器和路径?是否0引用%0包含文件名的批处理文件的路径?

或者它只是一个奇怪的标签?

我还想知道它是否是一个记录的功能,或者是一些容易被弃用的东西.

batch-file

970
推荐指数
7
解决办法
86万
查看次数

获取Windows批处理脚本(.bat)中传递的参数列表

我想找到一个与Bash相对应的Windows批处理副本,$@其中包含传递给脚本的所有参数的列表.

或者我不得不打扰shift

windows batch-file

385
推荐指数
7
解决办法
35万
查看次数

获取当前批处理文件目录

首先,我看到了这个话题,但我无法理解.

题 :

有一个D:\path\to\file.bat包含以下内容的批处理文件:

echo %cd%
pause
Run Code Online (Sandbox Code Playgroud)

输出是:

C:\
Run Code Online (Sandbox Code Playgroud)

肯定是 D:\path\to

我究竟做错了什么?

windows batch-file working-directory

254
推荐指数
4
解决办法
40万
查看次数

Apache无法启动 - ServerRoot必须是有效的目录,并且无法找到指定的模块

我正在使用xampp便携式服务器而我在Apache http服务器上遇到了一些问题,它说"ServerRoot必须是一个有效的目录"

命令行输出:

Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 35 of K:/../../../xampp/apache/conf/httpd.conf: ServerRoot must be a valid directory

Apache could not be started
Run Code Online (Sandbox Code Playgroud)

我检查了xampp/apache/conf/httpd.conf的第35行,它是:

ServerRoot "/xampp/apache"
Run Code Online (Sandbox Code Playgroud)

哪个不存在.我的文件夹是:

K:/../../../xampp/apache/conf     <- where the httpd.conf is
K:/../../../xampp/apache/         <- the server root
K:/../../../xampp/apache/modules  <- where server modules are
Run Code Online (Sandbox Code Playgroud)

如果我改变(在第35行)

ServerRoot ".."
Run Code Online (Sandbox Code Playgroud)

它说:

Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 65 of K:/../../../xampp/apache/conf/httpd.conf: Cannot …
Run Code Online (Sandbox Code Playgroud)

apache httpd.conf

31
推荐指数
2
解决办法
12万
查看次数

使用%~dp0引用的批处理文件路径有时会在更改目录时发生更改的原因是什么?

我有一个包含以下内容的批处理文件:

echo %~dp0
CD Arvind
echo %~dp0
Run Code Online (Sandbox Code Playgroud)

即使更改目录值后%~dp0也是如此.但是,如果我从CSharp程序运行此批处理文件,则CD%~dp0后更改的值.它现在指向新目录.以下是我使用的代码:

Directory.SetCurrentDirectory(//Dir where batch file resides);
ProcessStartInfo ProcessInfo;
Process process = new Process();
ProcessInfo = new ProcessStartInfo("mybatfile.bat");
ProcessInfo.UseShellExecute = false;
ProcessInfo.RedirectStandardOutput = true;
process = Process.Start(ProcessInfo);
process.WaitForExit();
ExitCode = process.ExitCode;
process.Close();
Run Code Online (Sandbox Code Playgroud)

为什么以不同方式执行相同脚本的输出存在差异?

我在这里想念一下吗?

c# batch-file

21
推荐指数
3
解决办法
2611
查看次数

为什么"以管理员身份运行"更改(有时)批处理文件的当前目录?

我有一个批处理文件,与我想要的文件位于同一目录中xcopy.但由于某种原因,文件未找到.

我认为当前目录始终是批处理文件所在的位置.

我以管理员身份运行批处理文件 这发生在Windows 7 64位台式计算机上.

批处理文件:

@ECHO OFF
XCOPY /y "File1.txt" "File2.txt"
PAUSE
Run Code Online (Sandbox Code Playgroud)

错误:

File not found - File1.txt
0 File(s) copied
Run Code Online (Sandbox Code Playgroud)

process batch-file working-directory windows-7

12
推荐指数
1
解决办法
2万
查看次数

将当前文件夹添加到 reg 文件

我有以下reg文件

    Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Run script]
@="Run &script"

[HKEY_CLASSES_ROOT\*\shell\Run script\command]
@="\"C:\\Users\\teodora\\Desktop\\test.bat\" \"%1\""
Run Code Online (Sandbox Code Playgroud)

如何添加当前文件夹的路径而不是使用C:\Users...?我知道如何在.bat文件中执行此操作,但对于.reg文件的工作方式不同。

windows shell batch-file

5
推荐指数
1
解决办法
1436
查看次数