我希望能够检查某个文件夹(FolderA)是否存在,如果存在,则显示一条消息,然后退出批处理文件.
如果FolderA不存在,我想检查是否存在另一个文件夹(FolderB).如果FolderB不存在,则应显示一条消息并创建该文件夹,如果FolderB存在,则应显示一条消息,说明如此.
有没有人对我可以在记事本上使用的代码有任何想法来创建批处理文件以允许我这样做?
所有这些都需要在一个.bat
文件中完成.
我有一个运行几个可执行文件的批处理文件,我希望它在成功时退出,但如果退出代码<> 0则停止.我该怎么办?
我在这里搜索,发现有人用这个
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已存在多年,它应该有一个非常简单的解决方案....
我创建了一个批处理文件,它自动将.sql文件复制到已安装的Jasper服务器的路径(它可以是任何软件安装目录).
这是我的批处理脚本 -
C:\ PROGRA~2\JASPER~1.0\mysql\bin\mysql.exe -u root -proot <create_database.sql
当jasper安装在Program Files(x86)中时工作正常.我如何概括它的程序文件和程序文件(x86).
我正在编写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等其他本机脚本工具也是可以接受的.
注意: 我发布了自己的答案.我在网上搜索,并惊讶地发现这个主题很少.我开发了多种工作策略,并认为其他人可能会对我发现的内容感兴趣.
如何检查给定路径的目标是否是目录?
说:
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)
它应该尽可能地与这些案例一起使用:
在极端情况下,例如无法告知(权限)时,后备值可以为no,它不是目录.
我有一个包含文件和文件夹列表的文本文件.我想要做的是使用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)
我是在正确的轨道上吗?
感谢你并致以真诚的问候,
安德鲁
我写了一个批处理脚本:
@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)”,脚本将失败。
谁能说出导致此问题的原因以及如何解决?