『壹』 as2.0如何將文件所在文件夾的名字作為變數
可以用一個字元串變數,如下
var filestr:String="文件夾2";
還有一種也可以,用全局變數:
_global.filestr="文件夾2";
不過這樣在使用的時候一定要加上_global才可以。
『貳』 批處理:用什麼命令可以將一個特定的文件名設為一個變數的值。
還有一個問題是,路徑知不知道?如果知道的話用下面的:
@echo off
set DD=C:\sss\
for /f "delims=" %%i in ('dir /a-d /b "%DD%*"') do (set F=%%i)
echo %F%
pause
如果不知道,用這個:(當然了有個前提,是SSS只有一個)
@echo off
for /r C:\ %%i in (sss) do (if exist %%i set DD=%%i)
for /f "delims=" %%i in ('dir /a-d /b "%DD%\*"') do (set F=%%i)
echo %F%
pause
『叄』 批處理,用正則表達式找出當前文件夾的名稱,不是路徑
應該說用findstr命令並不適合所提問題,它的所謂"正則表達式"也就能查找某文件中或某字元串中是否含有某類特徵組合,就是說只能精確到是否含有的一行或一整串,而不能從一串中截取該串中的相符的一段,要想截取得用別的命令(順便說一下"&"符屬cmd命令中的特殊符,而""符屬於findstr命令中的轉義符,在不用/c參數及引號時要表示一個得寫成\findstr的用法及特殊符的處理方法一兩句說不清楚...)
當前路徑有現成的變數%cd%可表示,如果想獲取當前文件夾名可用:
for%%iin("%cd%")doset"當前文件夾=%%~nxi"
如果是從字元串中獲取(而不是真正當前路徑):
set"pathstr=D:ProgramfilesAAABBBxxx"
if"pathstr:~-1"==""set"pathstr=%pathstr:~,-1%"
for%%iin("%pathstr%")doset"該文件夾=%%~nxi"
『肆』 bat批處理中表示任意文件〔夾〕名稱分別用什麼變數表示
for /f "delims=" %%a in ('dir /s /b /a-d') do ("C:\Progra~1\WinRAR\WinRAR.exe" a -ep "%%~na.rar" "%%a")
其中,C:\Progra~1\WinRAR\WinRAR.exe為WINRAR程序目錄,自行調整
默認壓縮當前目錄及子目錄文件.
'dir /s /b /a-d' 為搜索范圍,要是要壓縮「D:\123」文件夾內所有文件,就改為 'dir /s /b /a-d d:\123' 即可。
----------------------------------------------------
在桌面上運行,目錄為D:\EFG
for /f "delims=" %%a in ('dir /s /b /a-d "D:\EFG"') do ("C:\Progra~1\WinRAR\WinRAR.exe" a -ep "%%~na.rar" "%%a")
------------------------------
試試這個
for /f "delims=" %%a in ('dir /s /b /ad "D:\sql*"') do (mysqlmp "%%a" > "%%a.sql")
『伍』 Excel VBA列出某文件夾下子文件夾及文件名
遍歷文件夾 並列出文件 & 文件夾 名 代碼如下:
在文件夾內 新建 個 Excel文件
Excel文件內 按 Alt+F11 視圖--代碼窗口, 把如下代碼復制進去, F5運行
Sub遍歷文件夾()
'OnErrorResumeNext
Dimfn(1To10000)AsString
Dimf,i,k,f2,f3,x
Dimarr1(1To100000,1To1)AsString,qAsInteger
Dimt
t=Timer
fn(1)=ThisWorkbook.path&""
i=1:k=1
DoWhilei<UBound(fn)
Iffn(i)=""ThenExitDo
f=Dir(fn(i),vbDirectory)
Do
IfInStr(f,".")=0Andf<>""Then
k=k+1
fn(k)=fn(i)&f&""
EndIf
f=Dir
LoopUntilf=""
i=i+1
Loop
'*******下面是提取各個文件夾的文件***
Forx=1ToUBound(fn)
Iffn(x)=""ThenExitFor
f3=Dir(fn(x)&"*.*")
DoWhilef3<>""
q=q+1
arr1(q,1)=fn(x)&f3
f3=Dir
Loop
Nextx
ActiveSheet.UsedRange=""
Range("a1").Resize(q)=arr1
MsgBoxFormat(Timer-t,"0.00000")
EndSub
效果如圖:
『陸』 如何用變數定義文件的名稱
不知道是什麼編程語言呢。不過隨便哪種應該都支持字元串拼接的吧,比如java直接寫name + ".asp" 就行了。
『柒』 批處理 獲取文件夾名稱作為變數
你應該懂bat的吧,能看懂啊。自己要稍微改,因為不知道你要的動作,所以我call :sub了
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /ad "C:\Documents and Settings\"') do (
set str=%%i
if not "!str:~4,1!"=="" (if "!str:~5,1!"=="" (call :sub) ))
pause&exit
:sub
echo yes
『捌』 文件名可以用變數代替么
至少有三種方式可以創建文件,文件名都可以使用變數。
常用的函數中,無論是fopen還是
CreateFile
,其參數都可以使用變數來作為文件名來創建文件和讀寫文件
『玖』 matlab如何實現通過變數來命名文件
我的方法:
mydir=uigetdir('d:','選擇一個txt文件保存目錄');%%%選擇txt文件的保存位置
% %%%可以選擇已存在文件夾,也可以新建文件夾,也可以
% %%%選擇D盤以外的文件夾,這里的d只起參考作用
str=input('str=','s'); %其中's'是輸入字元串的意思,即輸入txt文件名
fid=fopen([mydir '\' str '.txt'],'w');%%%以剛才的名字新建txt文件
a=[1 2 3;5 7 9];%%%要寫入的數據
fprintf(fid,'%d %d %d\n',a');%%%向txt文件寫入數據,如果不寫數據的話此步驟可以省略
fclose(fid);%%%關閉txt文件
樓上的方法我也看過了,有一些小問題,我修改了一下,另外個人覺得樓上的方法把簡單問題復雜化,很簡單的東西沒必要搞得那麼復雜吧,下面給出我修改後的樓上的方法
樓上修改後:
clear;clc;
file_name_tag=1;
err_file_name=['\/:*?"<>|',':*?「{}'];%文件名不應含有的字元,此處可以根據需要自己改
while file_name_tag
err_num=0;
% err_char=[];%%%
file_name=input('文件名:','s');
err_char=zeros(1,length(file_name));
for n=1:length(err_file_name)
if sum(file_name==err_file_name(n))
err_num=err_num+1;
%獲取輸入的文件名中非法的字元:
err_char(err_num)=err_file_name(n);%err_char為字元串,應用char()函數
end;
end;
if err_num
disp(strcat('文件名中含有非法字元:「',err_char(1:err_num),'」,請重新輸入!'));
elseif isempty(file_name)
disp('文件名不能為空')
else
file_name_tag=0; %跳出循環
end;
end;
file_dir_tag=1;%准備進入循環
while file_dir_tag
file_dir=input('路徑:','s');
if file_dir(end)~='/'||file_dir(2)~=':'||file_dir(3)~='/'
disp('錯誤的文件路徑,應以「X:/」開頭,並以「/」結束,請重新輸入!');
elseif isempty(file_name)
disp('路徑不能為空')
else
file_dir_tag=0;%跳出循環
end;
end;
file_format_tag=1;%准備進入循環
while file_format_tag
file_format=input('文件格式:','s');
if file_format(1)~='.'
disp('錯誤的文件格式,應以「.」開頭,請重新輸入!');
elseif isempty(file_name)
disp('文件格式不能為空')
else
file_format_tag=0;%跳出循環
end;
end;
wenjian=strcat(file_dir,file_name,file_format);%文件路徑、名稱和格式
% dos(['echo > ',wenjian]);%保存文件
fid=fopen(wenjian,'w');
a=[1 2 3;5 7 9];
fprintf(fid,'%d %d %d\r\n',a');
fclose(fid);
這算是比較復雜的方法,我修改了一些小問題,做了一些改動
『拾』 bat怎麼取所在文件夾名字為變數
找到這個可以參考下。
@echo off
color 0e
echo ◎■◎■◎■◎■◎■◎
echo ■批量文件壓縮處理 ■
echo ◎■◎■◎■◎■◎■◎
if EXIST WinRAR的路徑臨時存儲.txt del WinRAR的路徑臨時存儲.txt
echo.
echo ■■■■■■■■■■■■■■■■■■■■■
echo ■使用說明: ■
echo ■將此批處理放入所需壓縮的文件夾的父目錄■
echo ■■■■■■■■■■■■■■■■■■■■■
echo.
echo ◎◎◎◎◎◎◎◎◎◎◎◎
echo ◎輸入Y(yes) 開始程序 ◎
echo ◎輸入E(exit)退出程序 ◎
echo ◎◎◎◎◎◎◎◎◎◎◎◎
set choose =
set /p choose=請選擇:
if '%choose%'=='y' goto 開始程序
if '%choose%'=='e' (goto :exit) else goto 開始程序
:開始程序
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe" /v path>>WinRAR的路徑臨時
存儲.txt
:: 查詢注冊表中的winrar程序安裝路徑,並將找到的路徑發送到'WinRAR的路徑臨時存儲.txt'文件中去
for /f "tokens=1,2,* skip=4 delims= " %%x in ('more WinRAR的路徑臨時存儲.txt') do set WinRAR的路徑=%%z
:: *********************************************************
:: 【1】使用語句:FOR /F ["options"] %variable IN (file-set|"string"|'command') DO command [command-
parameters]
:: 【2】/F:查找字元串或則文件中的特定字元參數。使用後默認方式為查找每個文件(字元串)中的每一行中分開的
第一個空白符號。跳過空白行。
:: 【3】["options"]:您可通過指定可選 "options" 參數替代默認解析操作。這個帶引號的字元串包括一個或多個指定
不同解析選項的關鍵字。這些關鍵字為:
:: eol=c - 指一個行注釋字元的結尾(就一個)
:: skip=n - 指在文件開始時忽略的行數。
:: delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。
:: tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代的 for 本身。這會導致額外變數名稱的分配m-n格式為
一個范圍。通過 nth 符號指定 mth。如果符號字元串中的最後一個字元星號,那麼額外的變數將在最後一個符號解析之
後分配並接受行的保留文本。
:: usebackq - 指定新語法已在下類情況中使用:在作為命令執行一個後引號的字元串並且一個單引號字元為文
字字元串命令並允許在filenameset中使用雙引號擴起文件名稱。
:: 【4】%variable:指定的參數,在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable 而不要用 %
variable。變數名稱是區分大小寫的,所以 %i 不同於 %I。
:: 【5】file-set|"string"|'command':指定的文件或字元串和目錄。
:: 【6】DO command [command-parameters]:1)command為指定對每個文件執行的命令。2)command-parameters為特
定命令指定參數或命令行開關。
:: 【7】整個語句的解析:在文件「in ('more WinRAR的路徑臨時存儲.txt')」中查找特定的字元串,1)先跳過前四行
(skip=4);2)以空格為分隔符(delims= );3)將找到的第一個字元傳遞給參數x("tokens=1,2,* skip=4 delims=
" %%z);4)找到一個字元後就開始運行do後面的命令。5)將參數l獲得的值賦予常量'WinRAR的路徑'中(do set
WinRAR的路徑=%%z),參數將按照查找的順序自動將找到的字元串賦予參數z之中,本例中按照順序「x\y\z」,故z獲得
tokens中的符號「*」中的字元串。
:: *********************************************************
if EXIST WinRAR的路徑臨時存儲.txt del WinRAR的路徑臨時存儲.txt
for /f "delims=" %%i in ('dir /ad /b') do call :開始壓縮 %%i
:: *********************************************************
:: 【1】dir /ad /b:1)/a為顯示所有文件。2)/ad則為跟寬式相同,但文件是按欄分類列出的。3)/b使用空格式(沒
有標題信息或摘要)。
:: 【2】call :開始壓縮 %%i:調用:'開始壓縮',並將獲得的字元串賦予參數i中。
:: *********************************************************
echo.
echo ◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎
echo ◎壓縮完成 ◎
echo ◎輸入R(Repetition) 重新運行 ◎
echo ◎輸入E(exit)退出程序 ◎
echo ◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎
echo.
set choose =
set /p choose=請選擇:
if '%choose%'=='r' goto 開始程序
if '%choose%'=='e' (goto :exit)
:exit
exit
:開始壓縮
set 網站文件夾=%*
"%WinRAR的路徑%\rar" a -r -msrar;zip;jpg;jpeg;gif;rm;rmvb;mp3;wave;wam;wmv;mpeg -ag %網站文件夾%.rar %網
站文件夾%
:: *********************************************************
:: [1]-r:連同子文件夾
:: [2]-ag:以當前日期與時間生成壓縮文件名
:: [3]-ms:指定不壓縮而直接存儲的文件類型。當正確使用時,它將有助於增加壓縮速度,而不會顯著的減小壓縮率。
:: *********************************************************
EndLocal
:: *********************************************************
:: [1]EndLocal:結束批處理文件中環境更改的本地化,將環境變數還原為匹配 setlocal 命令前的值。
:: *********************************************************