小编Mof*_*ofi的帖子

使用%~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
查看次数

如何在Windows命令行上获取文件的上次修改日期?

我一直在使用以下命令来获取文件日期.但是,fileDate自从我们移动到另一台服务器(Windows Server 2003)以来,该变量一直在返回空白值.

FOR /f %%a in ('dir myfile.txt^|find /i " myfile.txt"') DO SET fileDate=%%a 
Run Code Online (Sandbox Code Playgroud)

有没有其他更可靠的方法来获取文件日期?

windows command batch-file

19
推荐指数
4
解决办法
14万
查看次数

删除批处理文件中的前导零

在我的应用程序中,我得到一个前导零的数字.我试图修剪前导零并得到实际数字.我尝试使用/aswitch,它将赋值的右侧视为算术表达式.所以我尝试过:

SET /a N = 00027
Run Code Online (Sandbox Code Playgroud)

上面给出了23的输出,它是八进制数27的十进制等值.然后我在网上找到了解决方案.

SET N = 00027
SET /a N = 1%N%-(11%N%-1%N%)/10
Run Code Online (Sandbox Code Playgroud)

这似乎有效,并给出了输出27.是否有更简单的方法来修剪批处理文件中的前导零?

trim batch-file zero

19
推荐指数
4
解决办法
1万
查看次数

将文本从Windows CMD窗口复制到剪贴板

有谁知道是否可以从Windows的命令提示符或控制台窗口复制文本,如命令,控制台应用程序或批处理文件的输出?

windows cmd batch-file

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

如何使用WinRAR命令行提取ZIP文件?

在尝试提取zip文件时,我收到错误:

c:\ path \name.zip不是RAR存档
没有要提取的文件

我的代码是:

p.StartInfo.FileName = @"C:\Program Files\WinRAR\rar.exe";
p.StartInfo.Arguments = string.Format("x -o- {2} \"{0}\" * \"{1}\"\\ ",
  szFN,
  outFolder,
  passWord == null ? "" : string.Format("-p\"{0}\"", passWord));
Run Code Online (Sandbox Code Playgroud)

GUI版本可以提取zip和7z文件.

为什么这不起作用?如何提取zip和7z文件?

(注意:我有7zip的不同源代码.我想我可以合并这两个,只有当文件有rar扩展时才使用上面的.但我不喜欢那个解决方案.)

command-line rar winrar unrar

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

使用Windows批处理文件的多行命令的单行

我试着理解批处理文件中单个命令行中的多个命令是如何工作的.

dir & md folder1 & rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)

和其他情况类似的命令,但&&&.

dir && md folder1 && rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)

1.这两种情况有什么区别?


我想问的其他事情:

单线batch.bat:

dir & md folder1 & rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)

多线程batch.bat:

dir
md folder1
rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)

2.这种单线程和多线程在批处理文件程序方面是否相同?


还有一件事我想知道:

3.如果我从main.bat调用其他批处理文件,它们是否独立运行?主批处理文件不等待其他批处理文件中的结束程序?怎么做?

windows command-line cmd batch-file simultaneous

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

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

我有一个批处理文件,与我想要的文件位于同一目录中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万
查看次数

错误消息"系统无法找到指定的路径"的原因是什么?

我在文件夹run中有文件夹system32.当我cmd从Total Commander中打开一个命令提示符窗口C:\Users\admin作为当前目录并想要进入该文件夹时,会输出以下错误消息:

系统找不到指定的路径.

当我cmd直接在文件夹中打开时run,它完美无缺.为什么?

打开的命令提示符窗口C:\Windows\System32\run:

C:\Windows\System32\run>cd..

C:\Windows\System32>cd run

C:\Windows\System32\run>
Run Code Online (Sandbox Code Playgroud)

简单运行命令提示符窗口cmd:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Všetky práva vyhradené.

C:\Users\admin>cd..

C:\Users>cd..

C:\>cd windows

C:\Windows>cd system32

C:\Windows\System32>cd run
Systém nemôže nájst’ zadanú cestu.
Run Code Online (Sandbox Code Playgroud)

directory cmd system32

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

Windows批处理文件 - 如果窗口标题包含文本,则为taskkill

我想写一个简单的批处理文件来杀死包含窗口标题中某些文本的进程.现在我有:

taskkill /fi "Windowtitle eq XXXX*" /im cmd.exe  
Run Code Online (Sandbox Code Playgroud)

这是有效的,除了我想要做的是在标题的开头和结尾都使用通配符.所以类似于:

taskkill /fi "Windowtitle eq \*X*" /im cmd.exe  
Run Code Online (Sandbox Code Playgroud)

但我试过这个并没有用.有什么我想念的或者这不可能吗?

windows cmd process batch-file taskkill

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

7zip最快的LZMA2压缩

如何将这些设置转换为命令?

存档创建选项的屏幕截图

Archiv format:7z
compression level: Fastest
Compression method: LZMA2
Dictionary size: 64kb
Word size: 32
Solid Block size: 8MB
Number of CPU threads: 30
Run Code Online (Sandbox Code Playgroud)

我试过这个:

"7z.exe" a -t7z "F:\BACKUP" "D:\Source" -m0=LZMA2:d=64k
Run Code Online (Sandbox Code Playgroud)

压缩是好的,但使用GUI需要3个小时,而不是1小时.我查看了文档,但我无法理解.

compression command-line 7zip batch-file

11
推荐指数
1
解决办法
9562
查看次数