小议Test-Path参数IsVaild的使用限制

PowerShell中的路径存在性检测:实例解析 本文探讨了PowerShell中检测文件/目录存在性的方法。传统Test-Path命令在网络路径检测中存在局限性,无法区分路径不存在和网络访问问题。通过使用.NET的DirectoryInfo类配合异常处理,可以更精准判断路径状态,识别无效字符、路径过长、权限不足或网络问题等不同情况。文中提供了完整的PowerShell函数示例,实现对网络路径的全面检测,为系统管理和脚本编写提供了更可靠的解决方案。 阅读详情

作者: Edengundam(马涛)

之前, 我曾经翻译过一个cmdlet命令: Test-Path, 这个命令用于确定路径的所有元素是否存在。今天, 我们主要查看一下该命令的参数IsValid.
首先, 我们先看下这个参数的描述:

-isValid <SwitchParameter>
    确定路径的语法是否正确(不管路径的元素是否存在)。如果路径语法有效,则返回 True;如果其无效,则返回 False。

注意这里<SwitchParameter>意味着此参数不需要指定任何参数值(argument). 先让我们看几个例子:

PS C:Scripts>   Test-Path c: -isValid  # 我们期待这是个正确的目录
True

PS C
:Scripts>   Test-Path c:]] -isValid  #这也是个正确的目录
True

PS C
:Scripts>   Test-Path c:/ -isValid  #这个正确嘛?有疑问??
True

PS C
:Scripts>   Test-Path / -isValid   #这个呢?看起来不像正确的.
False

PS C
:Scripts>   Test-Path z/ -isValid  #这个肯定错了吧!
True

PS C
:Scripts>   Test-Path z/// -isValid  #这个鬼东西...错了!
True

PS C
:Scripts>   Test-Path ac -isValid   #看起来挺对的
True

怎么样, 这些结果是不是让你觉得很郁闷, 明明有些路径根本就是非法的, 为什么还会返回正确的结果呢??这是由于Test-Path只是简单的查看路径名中是否存在非法的字符. 请看下面的例子:

PS C:> Test-Path z/ -isValid -PathType Leaf
True
PS C
:> Test-Path z/ -isValid -PathType container
True
PS C
:scripts> New-Item z/ -ItemType container


    目录
: Microsoft.PowerShell.CoreFileSystem::C:scripts


Mode                LastWriteTime     
Length Name
----                -------------     ------ ----
d
----         2007-9-25     17:49            z

经过确认'z///'是合法路径后, 我们调用New-Item创建目录'z///', 结果只创建了目录'z'. 也许这是此命令的一个缺陷, 希望PowerShell的下个版本能让它按照我们期待的运行.
不过我个人觉得, 其实不管如何, 我们直接去尝试创建目录即可, 然后只需要使用trap捕获异常事件即可. 最后, 附赠一个小脚本, 可以输出ASCII码0-127中, 哪些字符禁止出现在路径中.

PS C:scripts> 32..127 | ?{ !(Test-Path -Path "$([char]$_)" -IsValid) } | %{ [char]$_ }
"
*
:
<
>
?
|

这里我省略了0-31的字符, 有兴趣的朋友可以自己试试^^
 

PowerShell中使用Test-Path命令检查文件或文件夹路径是否存在示例 检查文件或文件夹路径是否存在,在编程中是经常用到的功能。PowerShell对于这个需求提供了一个非常便捷的cmdlet,那就是Test-Path!呵呵,看个名字,你就明白它有多么专业了。看看关于它的基本介绍先: Test-Path,检查路径是否存在。 语法:Test-Path <路径> 说明:这里的路径可以是:文件、文件夹、HKLM路径、环境变量env:路径 下面来举一些例子,让大家更方便懂: 代码如下:Test-Path D:\q.txt Test-Path C:\Scripts\Archive -pathType container Test-Path “HKCU:\Software\ 立即下载

相关推荐

盘点那些好用的SAP FIORI App(二) -上传凭证Upload Journal Entry

SAP FICO运维问题及解决方案分享

lijinbao171022的博客 1544

Test-Path 帮助信息

如下说明是翻译: help Test-Path 产生的帮助信息. 译者: Edengundam(马涛) Test-Path 大纲确定路径中所有元素是否都存在. 语法Test-Path [-path] [-pathType { | | }] [-isValid] [-include ] [-exclude ] [-filter ] [-credential ]

Windows PowerShell 2964

kaggle项目:纽约出租车行程时间NYC Taxi Trip Duration

纽约出租车形成时间预测(NYC Taxi Trip Duration)是Kaggle中的一个Playground竞赛。比赛数据集基于2016年纽约市黄色出租车行程记录数据,需要建立一个模型,根据单个行程属性,预测测试集中每次行程的持续时间。Kaggle项目模型XGBoost,评价指标RMSLE。

weixin_42113929的博客 2790

IsValid函数基本用法

功能 检查对象变量是否已经实例化,即实例变量的值是否是个有效的对象。 语法 IsValid(objectname) 参数 objectname:要检查的对象名。 返回值 Boolean。如果指定对象已经创建了对此案实例,那么IsValid()函数返回True,否则返回FALSE。如果参数obejctname的值为NULL,IsValid()函数返回NULL。 示例 if (!isValid(...

一个天秤座的程序猿???? 3万+

华为防火墙双线路配置实战:5分钟搞定主备自动切换(含健康检查避坑指南)

本文详细介绍了华为防火墙双线路配置实战,包括主备自动切换和健康检查机制的优化技巧。通过智能健康检查机制,华为防火墙能实现毫秒级故障自动切换,确保网络高可用性。文章提供了从架构设计到实战配置的全流程指南,并分享了常见配置误区与解决方案,帮助中小企业快速搭建稳定可靠的网络架构。

weixin_30872337的博客 606

zds1104示波器使用指南

(2)将探头连接到探头补偿端,按下auto setup按键,一键捕获。(3)连接需要测量信号,开始查看波形。操作说明书,可以自行查看操作说明书。

m0_61973119的博客 6776

powershell test-path

原文在这里   一般来说用来测试目录或文件是否存在,不过由于powershell自己带的provider 包括一些环境变量env 注册表 hklm... 等,而这些都更目录是一致的所以都能用test-path来进行测试,但用在注册表上的时候需要注意,powershell 只能对注册表中的键进行测试,而不能对键所包含的值进行测试。(这个点从获取注册表具体键位值要使用get-itemproperty...

weixin_30606461的博客 840

WorkBuddy 集成 飞书CLI,全程10分钟,丝滑无比,老板要注意了...

飞书CLI实测:10分钟实现AI操控飞书办公 飞书CLI作为命令行工具,让用户通过简单命令完成飞书各项操作。本文记录了从安装到使用的完整过程:一键安装仅需10分钟,支持200多条命令覆盖飞书全部功能,与AI结合后可实现自然语言办公。实测中成功用语音指令创建了7天发文计划日程,验证了其便捷性。虽然首次认证存在超时问题,但整体体验流畅。该工具将复杂操作简化为自然语言指令,大幅提升办公效率,特别适合需要频繁使用飞书的用户。后续还将探索更多自动化办公场景。

三棱球的专栏 1143

powershell 常用命令笔记

Test-Path,检查路径是否存在。 语法:Test-Path <路径>说明:这里的路径可以是:文件、文件夹、HKLM路径、环境变量env:路径 Test-Path D:\q.txt Test-Path C:\Scripts Test-Path C:\Scripts\Archive\*.ps1 删除文件 Remove-Itemc:/scripts/*-recurse .........

winterye12的博客 1294

R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV

R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV

data+scenario+science+insight 656

从登录到应用可见:在 SAP S/4HANA Cloud Private Edition 中创建用户与打通 SAP Fiori 权限的完整思路

在SAP S/4HANA系统中,用户创建远非简单的账号开通,而是涉及认证、授权、数据访问等多维度的复杂过程。用户主数据记录(User Master Record)是系统访问的起点,包含登录方式、角色分配等关键信息。认证解决"你是谁"的问题,授权则决定"你能做什么"。SAP Fiori访问链路涉及Launchpad内容分配、应用启动映射、OData服务权限等多层校验。角色(Role)通过PFCG维护,包含业务目录(Catalog)和空间(Space)等元素,共同构成完整

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 151

is_valid()判断的是什么,验证的约束条件是以字段的定义为准吗?

数据清洁:如果数据有效,该方法还会“清洁”数据,这意味着它会将数据转化为合适的Python类型。例如,如果一个字段被定义为EmailField,is_valid()会检查该字段中的数据是否是一个有效的电子邮件格式。错误信息:如果某些数据不合法或者缺失必要的数据,is_valid()会返回False,同时,你可以通过form.errors查看具体的错误信息。在Django的表单和模型系统中,每一个字段都有一套默认的验证规则,这些规则是基于字段的类型以及其它属性来定义的。

L3wen4y的博客 1308

芒果YOLO11改进23:主干Backbone篇GhostNet:原创改进高效 GhostNet 网络,华为出品,打造全新检测器

主干Backbone篇GhostNet:原创改进高效 GhostNet 网络,华为出品,打造全新检测器

包括YOLOv5、YOLOv7、YOLOv8等模型改进 406

IsValid() 的用法

 IsValid()功能检查对象变量是否已经实例化即实例变量的值是否是个有效的对象句柄语法IsValid ( objectname )参数objectname 要检测的对象名返回值Boolean 如果指定对象已经创建了对象实例那么IsValid()函数返回TRUE否则返回FALSE 如果参数objectname 的值为NULL IsValid()函数返回NULL示例 下面的代码检查窗口w_emp

Sysbor的专栏 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

有效符号 isValid python

分析: 1、把'(',')','{','}','[',']'放在字典bracketPairs 中,闭括号为key,开括号为vule 2、循环读取s串中每个值,判断是否存在字典bracketPairs 的key中(闭括号),如果是开括号,append到stack中 3、如果是闭括号,这个闭环号对应的字典bracketPairs值:bracketPairs[c],对比这个值是否与stack[-1]相等,相等就pop掉stack[-1],继续循环s串。 4、循环完毕,最后判断stack是否已为空,若为空,tr..

linjing0504的博客 2220

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

函数IsValid()

功能:检查对象变量是否已经实例化,即实例变量的值是否是个有效的对象句柄。 语法:IsValid(objectname) 参数:objectname:要检查的对象名。 返回值:Boolean。如果指定对象已经创建了对此案实例,那么IsValid()函数返回True,否则返回FALSE。如果参数obejctname的值为NULL,IsValid()函数返回NULL。 eg:IF IsVa...

weixin_30297281的博客 1656

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pb对象create在什么时候才可以使用 ,isvalid的作用

在用transaction时候create的新实例不可以用,总是提示unresolve property。但是我在此前加了个isvalid的判断以后就好了,不知道什么原因,估计pb在create比较复杂的事务时候并没有完全创建完成或者储存在什么地方,而在isvalid的时候才全部迫使全部调入到前台,以后有空慢慢研究吧。

derris的专栏 3289

解密PowerShell:Test-Path命令如何处理$null参数?

你是否曾在PowerShell脚本中遇到过神秘的路径检查失败?当Test-Path命令遇上$null参数,新手往往会陷入"路径明明存在却返回False"的困境。本文将深入解析这一常见问题的底层机制,通过源码分析和实战案例,帮你彻底掌握Test-Path的参数处理逻辑,避免在自动化脚本中踩坑。读完本文你将获得: - 理解$null参数在Test-Path中的特殊行为 - 掌握3种防御性编程技...

gitblog_01020的博客 522

<c:forEach>标签报isValid()==false错问题

今天遇到了这样一个错,关于jstl标签的错误,上图是正确写法。

CCwanglei的博客 4998

我能用Windows PowerShell做什么:核实是否存在的文件或文件夹

注:本篇文章,未在联系作者以及得到许可的情况下, 禁止以任何形式进行转载。By:Anders      Mail:katrina520@163.com核实是否存在的文件或文件夹Test-Path是核实文件和文件夹主要的一个用途。举个例子,这个命令用来检查C:/Scripts/Test.txt是否存在:Test-Path c:/scripts/test.txt如果文件存在

Anders's Blog 5757

20.Valid Parentheses with stack

#include &lt;iostream&gt; #include &lt;cassert&gt; #include &lt;string&gt; #include &lt;stack&gt; using namespace std; class Solution { public: bool isVaild(string s){ stack&lt;char&gt...

含笑 707

C/C++获得当前程序路径

<br />Windows下,<br />获得工作目录如下:<br />#include <direct.h> #include <stdio.h> char buffer[MAX_PATH]; getcwd(buffer, MAX_PATH); printf( "The current directory is: %s ", buffer); //打印出E:/C++/cppTest/cppPrimerTest <br /> <br />获得exe当前目录:

懒人的技术笔记 6万+

Path must be a string. TypeError: Path must be a string.解决

重新npm install就好了,不行多安装两次。亲测有效

qq_43676606的博客 2730

C语言求解滑雪问题

主要思路: 1.用一个全局二维数组存放用户输入的高度矩阵; 2.定义一个二维数组visited[ ][ ]初始化为0,用做访问矩阵,同时复用作该位置结点最长路径的记录矩阵;只要路径数据不为0,则说明该点已访问过了; 3.对高度矩阵中的点逐个进行深度优先遍历,直至找出最长路径为止; 4.注意深度优先遍历的递归结束条件为当前点已访问过或者当前点已越界。 /*----------------------...

田野麦子 4329
上一篇: 在通配符中使用范围运算符(Using the Range Operator in Wildcard Queries)
下一篇: PowerShell的单引号和反引号
PowerShell
博客等级 码龄19年 103粉丝 110原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值