小编chi*_*npo的帖子

如何通过WinXP批处理脚本可靠地验证目录的存在?

你好,我正在编写一个可以在Windows XP机器上运行的批处理脚本.此脚本需要能够可靠地验证作为命令行参数传递的目录确实存在.

假设我的脚本名为script.bat,它需要支持以下作为合法的命令行参数:

C:\> script.bat C:
C:\> script.bat C:\
C:\> script.bat ..\photos
C:\> script.bat C:\WINDOWS
C:\> script.bat "C:\Documents and Settings"
C:\> script.bat "C:\Documents and Settings\"
C:\> script.bat F:\music\data\
C:\> ...
Run Code Online (Sandbox Code Playgroud)

基本上,给一个带有或不带尾随反斜杠的驱动器号以及完整的,绝对的或相对的路径名,带或不带尾随反斜杠(在某些目录名中有或没有空格)是合法的. )).如果它包含空格以便被解释为一个参数,那么显然必须引用该名称.但是,如果没有其他要求,则应允许引用名称:

C:\> script.bat "F:\music\data\"
Run Code Online (Sandbox Code Playgroud)

我的第一次尝试看起来像这样:

@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
IF ErrorLevel 1 GOTO :NoExtensions
IF "%~1"=="" GOTO :NoDirectory

SET dir=%~1\NUL
ECHO You provided:  %1
ECHO Testing using: %dir%
IF NOT EXIST %dir% GOTO :BadDirectory
SET dir=%~f1\
ECHO The following is …
Run Code Online (Sandbox Code Playgroud)

windows scripting batch-file

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

标签 统计

batch-file ×1

scripting ×1

windows ×1