我正在尝试搜索文件,但是我试图限制搜索时必须触摸的文件数量,因为我要查找的是特定的子文件夹。但是,子文件夹嵌套在服务器上的用户文件夹中
我尝试使用Get-childitem \ server \%username%\ desktop \ -filter file.ini
Get-ChildItem -path \ server \%username%\ desktop \ -filter file.ini
它炸毁了用户名。我不需要搜索所有上述文件夹,只需搜索特定的子文件夹,但似乎无法绕过用户变量。
答案 0 :(得分:1)
尝试使用%username%
代替Get-childitem \server\$env:username\desktop\ -filter file.ini
Get-ChildItem -path \server\$env:username\desktop\ -filter file.ini
:
WebMock::NetConnectNotAllowedError:Real HTTP connections are disabled.
Unregistered request:Get,https://maps.googleapis.com/maps/api/timezone/json?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&location=7.223929254996364,41.91576628703643×tamp=1557862636
with headers {'Accept'=>'*/*',
'Accept-Encoding'=>'gzip, deflate',
'Host'=>'maps.googleapis.com',
'User-Agent'=>'rest-client/2.0.2 (darwin18.0.0 x86_64) ruby/2.4.1p111'}
答案 1 :(得分:0)
PowerShell处理环境变量的方式与批处理文件略有不同。您将要引用
for (var i = 0; i < toggleableLayerIds.length; i++) {
var id = toggleableLayerIds[i];
var link = document.createElement('a');
link.href = '#';
link.className = 'active';
link.textContent = id;
link.onclick = function (e) {
var clickedLayer = this.textContent;
e.preventDefault();
e.stopPropagation();
var visibility = map.getLayoutProperty(clickedLayer, 'visibility');
if (visibility === 'visible') {
map.setLayoutProperty(clickedLayer, 'visibility', 'none');
this.className = '';
} else {
this.className = 'active';
map.setLayoutProperty(clickedLayer, 'visibility', 'visible');
}
};
var layers = document.getElementById('menu');
layers.appendChild(link);
}
而不是%username%
。
$env:username
请记住,这只会在文件夹“ server”位于驱动器根目录中的情况下搜索当前驱动器,因此,如果您正在使用的驱动器是C:驱动器,它将仅检查以下路径: / p>
Get-ChildItem "\server\$env:username\desktop\" -filter 'file.ini'
您可能想要添加C:\server\<username>\desktop\file.ini
开关以使其检查子文件夹,或者根据需要采取措施来修改路径。如果您打算在远程服务器上查找文件,则可能需要这样做:
-recurse
答案 2 :(得分:0)
对于诸如台式机(所谓的“特殊文件夹”)之类的位置,另一种技术是使用.NET为您查找位置。例如:
$desktop = [Environment]::GetFolderPath("Desktop")
这将返回如下内容:
C:\Users\<UserName>\Desktop
优点是您不需要知道路径的任何部分(例如驱动器号),只需知道所需的特定文件夹即可。缺点是它只能在本地运行,因此您不能将其指向远程服务器并从它们那里获取值(尽管它应该通过PowerShell Remoting运行)。
这里是您可以代替“桌面”使用的所有可能值的列表:
Environment.SpecialFolder Enum
或者您可以通过编程方式获取它们:
[Enum]::GetNames([Environment+SpecialFolder])
AdminTools
ApplicationData
CDBurning
CommonAdminTools
CommonApplicationData
CommonDesktopDirectory
CommonDocuments
CommonMusic
CommonOemLinks
CommonPictures
CommonProgramFiles
.
.
.
答案 3 :(得分:0)
所以,我必须有一点创意。
$ path = \ server \ firstlvl \
'#这给了我用户名子文件夹的名称
$ getUserDirectory =获取子项-path $ path
foreach($ getUserDirectory中的$ f){
$ getMyFile = Get-ChildItem -path $ path $ f \ Data -recurse -filter notes.ini
}
这使我进入目录,以便随后可以开始扫描文件并随后检查其内容以查找需要的内容。