相关疑难解决方法(0)

如何从批处理文件中检查文件是否存在

我只有在存在某个文件时才需要运行实用程序.如何在Windows批处理中执行此操作?

windows batch-file

444
推荐指数
3
解决办法
101万
查看次数

使用.bat文件检查文件夹是否存在

我希望能够检查某个文件夹(FolderA)是否存在,如果存在,则显示一条消息,然后退出批处理文件.

如果FolderA不存在,我想检查是否存在另一个文件夹(FolderB).如果FolderB不存在,则应显示一条消息并创建该文件夹,如果FolderB存在,则应显示一条消息,说明如此.

有没有人对我可以在记事本上使用的代码有任何想法来创建批处理文件以允许我这样做?

所有这些都需要在一个.bat文件中完成.

windows batch-file

150
推荐指数
2
解决办法
30万
查看次数

从批处理文件中获取错误代码

我有一个运行几个可执行文件的批处理文件,我希望它在成功时退出,但如果退出代码<> 0则停止.我该怎么办?

windows batch-file exit-code

37
推荐指数
3
解决办法
5万
查看次数

如何测试路径是Windows批处理文件中的文件或目录?

我在这里搜索,发现有人用这个

set is_dir=0
for %%i in ("%~1") do if exist "%%~si"\nul set is_dir=1
Run Code Online (Sandbox Code Playgroud)

但没有工作,当时%1==c:\this is a file with spaces.csproj,测试仍然成功,这意味着它仍将被视为文件夹!!!

任何人都知道答案,我想这是一个非常普遍的问题,Windows已存在多年,它应该有一个非常简单的解决方案....

windows batch-file

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

如何创建适用于Program Files和Program Files(x86)的批处理文件?

我创建了一个批处理文件,它自动将.sql文件复制到已安装的Jasper服务器的路径(它可以是任何软件安装目录).

这是我的批处理脚本 -

C:\ PROGRA~2\JASPER~1.0\mysql\bin\mysql.exe -u root -proot <create_database.sql

当jasper安装在Program Files(x86)中时工作正常.我如何概括它的程序文件和程序文件(x86).

nsis batch-file batch-processing 32bit-64bit

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

如何在批处理脚本中将Windows短名称路径转换为长名称

我正在编写Windows批处理脚本,我有一个参数或变量,其中包含使用短8.3名称的路径.路径可能表示文件或文件夹.

如何将8.3路径转换为长名称路径?至少我希望能够简单地打印出完整的长名称路径.但理想情况下,我想安全地将长名称路径转换为新变量.

例如,给定路径C:\PROGRA~1\AVASTS~1\avast\BROWSE~1.INI,我想返回C:\Program Files\AVAST Software\avast\BrowserCleanup.ini.

作为批处理爱好者,我最感兴趣的是只使用本机Windows命令的纯批处理解决方案.但是,混合使用PowerShell和JScript等其他本机脚本工具也是可以接受的.

注意: 我发布了自己的答案.我在网上搜索,并惊讶地发现这个主题很少.我开发了多种工作策略,并认为其他人可能会对我发现的内容感兴趣.

batch-file long-filenames short-filenames

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

如何检查路径的目标是否是目录?

如何检查给定路径的目标是否是目录?

说:

rem all these should work (by X: I mean a mapped UNC path)
set somepath=some\path
set somepath=c:\some\path
set somepath=x:\some\path
set somepath=\\server\some\path
set isdir=

rem now do some extremely complicated black magic to set %isdir%

if not _%isdir%_==__ (
    rem do the directory thing
)
Run Code Online (Sandbox Code Playgroud)

它应该尽可能地与这些案例一起使用:

  • 在Windows NT上(即不是Vista +的东西).
  • UNC路径以及当地路径
  • 在路径中有空格
  • 最后有或没有尾部反斜杠
  • 万一内容无法访问

在极端情况下,例如无法告知(权限)时,后备值可以为no,它不是目录.

windows cmd batch-file

3
推荐指数
1
解决办法
1715
查看次数

如何使用xcopy从文本文件复制文件和文件夹结构?

我有一个包含文件和文件夹列表的文本文件.我想要做的是使用xcopy来复制文本文件中写的内容.我的文本文件如下所示:

"C:\FOLDER"  
"C:\FOLDER\FILE1.TXT"
"C:\FOLDER\FILE2.TXT"
"C:\FOLDER\FOLDER2"
"C:\FOLDER\FOLDER2\FILE3.TXT"
Run Code Online (Sandbox Code Playgroud)

对于给定的输出目录,"C:\OUTPUT"我想复制整个结构,所以:

"C:\OUTPUT\FOLDER"  
"C:\OUTPUT\FOLDER\FILE1.TXT"
"C:\OUTPUT\FOLDER\FILE2.TXT"
"C:\OUTPUT\FOLDER\FOLDER2"
"C:\OUTPUT\FOLDER\FOLDER2\FILE3.TXT"
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?到目前为止,我已经写了一个for循环,读取文件的每一行,但如果该行是一个文件夹,它会复制所有文件.我想要做的只是复制和创建文本文件中提到的文件和文件夹.

@echo off
for /f "delims=] tokens=1*" %%a in (textfile.txt) do (
   XCOPY /S /E %%a "C:\OUTPUT"
)
Run Code Online (Sandbox Code Playgroud)

我是在正确的轨道上吗?

感谢你并致以真诚的问候,

安德鲁

xcopy batch-file

3
推荐指数
1
解决办法
6068
查看次数

批处理脚本在带括号的文件名上失败

我写了一个批处理脚本:

@echo off
set "zip=C:\Program Files\7-Zip\7z.exe"
for %%f in (%*) do (
    if exist "%%~f\" (
        "%zip%" a -tzip "%%~f.zip" "%%~f\*" -mx0
    ) else (
        "%zip%" a -tzip "%%~f.zip" %%f -mx0
    )
)
Run Code Online (Sandbox Code Playgroud)

当用户选择多个文件/文件夹并将它们拖到脚本文件上时,每个拖动的文件/文件夹都会被打包成一个 zip 文件。

在大多数情况下它工作正常。但是,如果被拖动的文件位于文件名包含括号的目录中,例如“myfolder(large)”,脚本将失败。

谁能说出导致此问题的原因以及如何解决?

windows batch-file

3
推荐指数
1
解决办法
1579
查看次数