我想切换一个带有-h
&属性的目录。 +h
因此。{/ p>
当我使用此命令序列时,输出为
\directory was unexpected at the time.
有关如何使其发挥作用的任何想法?
:toggle
if attrib \directory /s /d equ -h goto hidedir
if attrib \directory /s /d equ +h goto showdir
pause
goto start
:showdir
attrib -r -s -h \directory /s /d
goto start
:hidedir
attrib +r +s +h \directory /s /d
goto start
答案 0 :(得分:0)
这是一个小批量代码,使用问题How to get attributes of a file using batch file?
中解释的技术切换指定目录的隐藏属性@echo off
set "Directory=C:\Temp\Test Directory"
for %%D in ("%Directory%") do set "Attributes=%%~aD"
if "%Attributes:~3,1%"=="h" goto UnhideDir
%SystemRoot%\System32\attrib.exe +h "%Directory%"
goto :EOF
:UnhideDir
%SystemRoot%\System32\attrib.exe -h "%Directory%"
通过在命令提示符窗口FOR
或%%~aD
中输入,可以输出了解for /?
循环和help for
所需的信息。
在命令提示符窗口中运行set /?
或help set
并阅读打印的帮助有助于理解IF
条件中的子字符串比较,该条件比较字符串中的第四个字符与属性目录。 (第一个字符用索引值0引用。)
答案 1 :(得分:0)
@echo off
setlocal enableextensions disabledelayedexpansion
rem Configure folder to process
set "folder=.\test"
rem Determine the needed attribute
set "newMode=+h"
for %%f in ("%folder%") do for /f "tokens=2 delims=h" %%a in ("%%~af") do set "newMode=-h"
rem Change the attribute to new mode for the indicated folder and its contents
"%systemRoot%\system32\attrib.exe" %newMode% "%folder%"
"%systemRoot%\system32\attrib.exe" %newMode% "%folder%\*" /s /d
在此代码中,for
用于获取对文件夹的引用,for /f
用于确定文件夹属性列表中是否存在h
attrib。变量%newMode%
将获得所需的attrib
命令参数,以调整文件夹的属性及其内容
答案 2 :(得分:0)
@echo off
setlocal
attrib \directory /d | findstr "^....H" && set "switch=-" || set "switch=+"
attrib %switch%r %switch%s %switch%h \directory /s /d
答案 3 :(得分:-1)
我认为这可能有助于将链接更改为您想要的命令
@echo off
for /f "delims=" %%a in (work.txt) do (
set NUM=%%a
)
if %NUM%==1 goto start
echo incorrect
goto close
:start
start "Youtube playlist" "https://www.youtube.com"
echo 2 > work.txt
exit
:close
start "imager" "https://imgur.com/"
echo 1 > work.txt
exit